5.ルート3 100万桁

1.7320508075688772935274463415058723669428052538103806280558069794519330169088000370811461867572485756756261414154067030299699450949989524788116555120943736485280932319023055820679748201010846749232650153123432669033228866506722546689218379712270471316603678615880190499865373798593894676503475065760507566183481296061009476021871903250831458295239598329977898245082887144638329173472241639845878553976679580638183536661108431737808943783161020883055249016700235207111442886959909563657970871684980728994932964842830207864086039887386975375823173178313959929830078387028770539133695633121037072640192491067682311992883756411414220167427521023729942708310598984594759876642888977961478379583902288548529035760338528080643819723446610596897228728652641538226646984200211954841552784411812865345070351916500166892944154808460712771439997629268346295774383618951101271486387469765459824517885509753790138806649619119622229571105552429237231921977382625616314688420328537166829386496119170497388363954959381457576718533736331259108996554246248347871976052359977691923235702203053028403859154149710724295592067062025095201759631858727663599752836634310801506658537106473285386259222605822205104036802702975047987280794616581004170526819400190957334621759438936702493204226910343698124637201111852610842689102997203112021000635071763745824052038475551972799337976149061078949855442233260040188513036315611448868472815892881632451872650666453848775991625766428721112408420680167635171001029431807155151909616424609070394081292169035174929613640041396704310412536323270309225773279602923765977455370954691157421404242307819923276174019064245124548775168626961053336942162136053946042456541401285330078136334498567364067039773422298119610429255345016014059404795471545345484072717376562623665491666402330060132657440701078368584684523131604677544805004022406399119703622186029202388671507110171694002968687596635000408953162142334252279568340670134701859020283607167621477434934495635958080821304425864694685226109082633530087566126034606721954040559841289129759948100007720574402300476732588000915143714894754448791571912946590835708739615155377976402620683708480460729693827195856897597596261041591526575777907823349805678400229015320521389353737755365664270468268742899634413957436660737444455830864778932129853021481973953414781705166149525517632919936995657445226391125190935413869893668174309382264247369262020729909678311541319464843779154599159239282877146951492740264092136456540416445814902019457494193052690026139726460810650714396032060775105941877982847939861952499641652131397152935994218974166470751872357886294661085601704288696057983940529064074308118333886778815626358671560083967602453492299439388670597543154429434309572584709882154631112607667740678645715780606474474997503545445593132865491898493365727476262974147382356869148378313633612836279038248401638066716071798487285558429313492260932405659575536511367546443878342833134666445541803908218989832946263450161711220169296194601693206210330397448662316560035667818134431008965687067429656581774455726850156315944125073611980634728864662413271936694267129514503975189283134861928413032551884311690146714237943747283343446524820437960597328706162749109415968626253025588897684704175020031402622846910480469840324379066067377496271025127106020608626628436660501928908938383200060912286918818368423616939035231269303686137968115269469978919266352843899270165198255022529235793662816345681089130741126783781994497727654482949204388013017835464992135740327915775077860022964235042759969976269187384148473947738515635520912209633158390345671894152943570406530760852901742497681855028852763449495774491104225024537231560636181035048717591580327917983675100671361000662175660495737667771129252873024799267201589964189377620161141182898996829559025116563914223649950628500306968129735072517279185983011152775422988518853117635947860031230637260983698503083108521455957483595557157393566336808648210787912470510316315695816043487488296148941545853555619749992968779550992855274235902518103237668616095925525443199549074206797391570726142453289504280973510379677366601359175226270612323125894506976348131777544560666035762204830069042253894948677295213257197692459276706607658165582986750565728946588609190296443812850578597594375064024460621214560856085452492513683287548434387337202016923116304327056480601375879368567215350878168440780232920646231638112917722977527255310751613836821346045777998546256220819606316360192063309685162162316606834688631166215013238542873913044951231552163656212951874755309765706399550298804256473405577851913495330398886430714317850520079862424684813829763408021762970564572131621983068293646286822222799238164163531725982732130797141926762869156811818399665151003070108267031286640159183127196040389235406825915045957649183685526148034651092898965599618297164084981357029227296221402637505955199475016181058544740197649715937663423885697019822140454102096429083882488609872188764948008359444919344789313310807777408380356018922285371100938980912048532329904555985240968891805044970438384150455861501309029070913061564696859589692282764737642610837917002846890366686704976791703999544363304258557977940772699352889508378271143571257806312827293498833850459271106095260628790597150549459072798416817516870415050729577233652010032638314784794107946076565063693326630382060217195514719520412084796272485391115893028666410796969915248112769791499951026605745311238813939349197089269407357384919442919630072809503386543021378123394561424724245868250054905097821684198951540776630466486602532118215170585464816990103510204060407790534823954570811036628024193078335395185975088471185447931503450015803847094478546020921619344027984589124720529417767625064979618582347765562808249405444376505977794390801979243001549599367104079839130331199968665350178723089958743459810504105468536187166690086026518727095063078922094498504286193436294954293109720994085955858967960004258229594269439095741101667847980907928907540843387989975855690094719632489043233660363728874204771798977873196747893346400992387959284132804790765822581811835405914553958100297291326797141943540573531614158479802944118620313225190540915890191222553196537373928563103907877579205034394436105607282048657439146472804807233659273201766562230057011146855912144509955053649856433655095254739749965028288249228569590931880337949922646598620688234011743944962931319859858802541993470962010389491719770622586572667076187283539023348069250834356495374456283107575871868775381593970854006988992201660544250263128328807897949070455443295484928701875961007620274613110586720246495399705604774396010706774205747235875707590247265185322889102236303744620047196424007585416367657268920371635392194774286906858888158097042483582151491356992810750723078264474067187348094845445372649310629225803372585171451448054620766460867364272504830158120434217518693167085600083352959344267458729987350716251703005711571381753013024070110296602509558624225602890646741319080006821289845940660914873475988613959100493960659145172165306776819355721876558600653077388931209250490628043760017778544522650152062185050204383149506137210270801392037707562978306536077757366325928647365858953011561800178170369022806607100764410062540003168840377529981249455547190042489541494822410559478357875720032559664471237684403335315543214042574174579800602983082917713082714255424692326664441483627985257179752582246812204719564846717398920410879193844507863357697868887939147231768168152167068102145555981333521260636726553921369522551228189167174267189035559741529104672580692438625060986038713588672293142892391620343327393103925796435866555813425301725104238496068102902193241247883304519746316017074652260342989164540709484562290741791740090112338623953845452949732242933973062002716882658800112089852261253378070284555814485777518119353345581235380184354322962152848369629989192615657164169774661682445203114487162780669497265548371919914676148107974684952144144971912661242582093340384084351536196989622187374719284744719240730263128297944615701596967476881484379225755735032789444896030126575921998002987720122905396542336317981503621696885991838704958970325070591396571344311334355007767294918902707686149548339946677241627655147311951675116817189988757879821783910897600657100083767694295343505528881086589117067587211951593614891128230823068433211960720502186353183992210997148266151083690657111006301415107040757110854813735703344847363861289738071706512644964788393402501211372584839423856995813954657565637476063663971548025635737363996498472554328588587094954469906316852551185998779710745441588287563903866856240456273771403576082251948946485327585096461353516108643806062047390528236040530147069123230326365570538517553758640102485671114083731089069377746847929956368861770711886640773881462294837128180191710321559241500607987057229143543912519573687682238088982448959746974767810227262035149129049368822889115077490463869723017882528887064324867983149967119935102615482093073843975322668005873843094075789480751981638168561045141783744286400415613577411126912993293889596922900960405310032318338218577787993482184022913347370689218898207143551298643155087785079937015352295709988437829588173708847207000446716187002843143753441744194989748281483866434927418179804510217952989529115295358662010382233771879174986955322831643061566459360934573676220209533838311337455435570693333523605410975808062515075690820184887747333526891242463787463298297207036848194279920122736653368224997431755841896015620405764802965737706411639283600656124274527930242718781907182856514484698958989307844166763219885733320866403491603258218771672650046563027922746573906794446548856888469952701960611199427601957150010699606131876917255938986907151318947664410229132623397962287470519452771373516835620250745275664982358719100125339240110313240293530727058453878955596620356560863445813722609269451698856155856727245918467232376723889024046301478272090569073274357508512633882153203818017967012304019729723576801301149001545761421717982505197104838134595924675755060567951649416187383995284330819433744891905629838955891842366997243941630336015977981770968099747083279664585361364212373269418064931700218353510636886985761409975808193233084726159560152526795634829933448130862936150310687944450838567919383524529125004597160435444282261550962322402373162900504373772781347828505597613576092283525709520818983166516401955703409999385985215759638371453039749218001165562891592108179874742177235818010247261951186761253690063515801526045025896979708259356348890598694105955063792026162707067718087390644306123423600395630088194249193272120050585414562909637699049617062559097050613170541611281637777643062377082565860915795786071471312996038307212196898855891394480005155107065710359761518498082267043802144533530877161517260965721980312582046661604058657756565427575470268165624580553015470879936950340823284475265898527890494254552157075955914945113156734523101951497264407052337250223810767272574074532371287104539307166910993083856695345292768997264646352120149994950915423333145340014022110124806824899314675171865408622687223114158024434081610546161034178549923386446399052050275512911978337294000194827329315149427531702798304741111674984530814769799435528133294415339448471915440910253099019906508522402430753192448792335637216884052823997728810616189629901286359782815383946111778475090316138159207697031577129225883671748610325896277327349774474865345654776375316120592046501085242167020834330622787937556879835661707948539805672405348813332863107983491253431573486176091981021427979229101874508025820263636232561930962435532315872853488298737658693445244536021838558628387693371633402106422218121648108158044148550984921452232781196216717695478891598057099820333683236400840543660560960213397731321134370041157779279416953733290555689847546860131792597138339147457628094854081997114823580773194364603138983390293157229579605995737996880892198750625139336749428243289715570277272568733015593562060936647420322995103302578000433139634271097336646661490863286786373981691639308336794251913207194270439778233336565492715428384054154828429512441860192136924864167982396885951056057082135907413753597009483249106782289570737149368582861767705691151789837945472481786809925833497564131050431929905071074735720210361904421769138254077225877098258665377123363114546728096226862857517903656171356262848368729933724838869641743003095146568858073106078606338136114106578380857916824332787866051017755602745219297787276714818643586326926397144107440076379893600927865076344498613322613185703493939652925810312589979756682113528746900699208692461044703079948739387836109589924287548305915916908189355927228541346610288285838279190331761854589620529793379972937540785366652909730692348052308968960238907694503884253007950153484936908505238544937145462343779231247871980418029509120406614915380943198231301287028138846468983066808363657353390798462173737636521530555810107953833590149109533688942698656282762958961307540977007112160560798993295078135867385664900357460808120670919935882232037759314200235575651111403852388794039396321789726441731028564686443325620493880317031515593096015481621546048918615035403233749543076452816087928819594429051611973748958001216251344462661015527675073851438848772603875013059124407377868755520879930170699402300494387519451356766084988656208142725930283969440254277155903118283055929466746159464420661477391285073828270312641298117000677610212224092504509581437044356956442795847267426925751364169096524745256515429170481346514932428047685141556173442461710022652053755799305094490904737874154595585711947650935840049333898017322495667421349594227762088042443689291676237878470678272504359258059600870021318903848323784744251992684191921700167946735390326156679718204155595223009560952765457007061531156573248938348404539075519429837616622316377478559477733240437643333022588796798900972897817625827182709465857106368465281386322352299967783910650919388133511815108406257927001417262194046438720653414948648106452246614177739084530160858904450992089619297311169329114091497769851850444066774516530292781478958075008838132128356821349425177511216469764855395440142471268399165112143727355201194782764445993740716535226461304158855774618583343321700422885508182803196367986345019830445745677236982978064465386921306419220187960397916451543730378339631156967789263109277235980770834371606727813820103909176876013687920071757462097439748508491330592612324897288161594122861752895045639588199319397018229860037706411637880533171349077321534483872647053492608976945743564584071922425263896428461789693834811922511483429307533115473746469182857775141252643845544976256842191379987356275063359164555359775965709609410175643489592224187479885791470475198317865079883410852441316847315873407664016418782948852496021692802413006922494872726885362237962402814505942688905368716755391946427703539639315975421206980288723469535162309646225023869382386460846148888612273489574577807749819216506979170456011665336626678142971273181506632959990610746201759135474158545265342480351770716165007195259035889050547510317857046811052327150417210214328888810284703730549581195361696109888397347960223358154582046511234599261916049461467433661195790382730654255696097656637975080005938163426578313970167693766317069758397138975903848043093114543355249475659788306946532567411865225008837152756171648861479781848603575891436440433248669210119592494369770744954634889971180510283090229268536644022508424456152566412300295176504877697486313112948260864187081101878371341532945294292389938375781744935321383258964188412694034608767596871938114266315314691939848160895420606685229035762221329843379206938311946961324495157028294245460258796347783593472484763230929442318882442038949823875847856040419543754123648113839198940081720444173727269054722039939559357773196032606652425740389903202496224670544437964811213974425420738482728139983589242738605086596528199734789794381391425861810655580713362808634157025726376360562756685092702737655131055211244480718662752782255875779034637289025412019019708664796419158437289944719047308735742096150814737761472675541371218112105688188409954587115503282745984165940343530641170476062513057018368179279209543908273201456413792998493062220590641807618856901419720321836693916136781813969556017117721855015686264234700067419917233984820802105551798814449283369439658456329113865788989423707615422589173592146718291098535593081272998076576037717379430349677054697920485769161749575044748055455140583939277795600757005323166385413033324059868839751280826011762565617090658606573612488732540304200706603638905977046943087849621496529279062843532820019138028902623304810006086494168199912729118732019949273177271728770116095356523074668511124330704268603812346320048970831203321710396591963440580168315858335355535413579770085828573125609681711447443287026413955824846485530270913257239799039728389943269781485248527174126376955942825858780169538147599189240158004330342925359608774981732106539349404021393856783866451144621075317413164507898667075228932034562815574855150334536992079716564897365649252931092425493429982103487585426162899539514112688728119671464264309626949582161836802753102974603887875775357567699478466821601672656995850488736403571446106070133253787835509166640118586177427904029259127346066378627472028685776423263094289854806187195269405976932610776565425721798232360802796776099306283350167252274607935174088317559803954737592585816771448205678758250651139005595665258955613405318511423398241880381578125861196881933010373091924613848426129290591769935407307757466538292170416375023820186353150962830416136816824091883663428130001007623235778450192790174345156327848623470767101172623375647603408933721603862829931184059838043604162565133539010228488078753616056569770805296676814317090235622559669116678734166436135031780234863598153525053535141746466395002080075751594747968341749533490739065837654238509068218541913321124524114996628699612586776530460989119740428191948336060178966278825204356891693268472960493119541027205487942974126756487774441049252337948688611491888666532400835193945416111561385806743757827395988135032952611461834872077757353156631114957840790465928936449779422509357053540431610083385241307711286388655584093155255016852796469216009772519915294064742952356930447446545536193845073942837387793886456632970696184776805883395305447051058083601369254584470257338159177852843414324928960163980824098071419916048855624910769499637896552328855908293808558597854685644965083705481702914991151927246895060502985821305215059353165101935079998088806568377464913051924170991100376476439981949642023946050035509538132232441971787407880951232960370221012715113564316523537617211540047389436623718648059919987210194117358934395183028239433924913791724915246158474789731427058008305697026567084027128029770281355741041867813772171656828972162221300338656587723594278336711198442154339671515247032300933517215089947443780075958948815700805999801403901632344264893771270862426225019264487046080433420124885138822703201289381854441440780194388505088050762848101304034580222119814952154146428354107588151591996714866686547266075826211198927186066495416919813588193670522818002121146439553451306258518941434453910241706216104574937426661272649382666405673148510076392769155204906673011934655195353668184224866507772523310196666588285751223343748188421705766375609131426279899748364474874367321655365209864848523538610080515157257113582042571933514003412522408307643236919865683947882447078047419618915647608216253541665593185139810758927895632293261351895320039707190712139848649210519128222683454142575710670404465259448362691439822182314017139572365512964135439813859210699115099046427735531187329487495549789393724776229924831429200696790756014993251510504057703503066429644397048257021173658115730080126604546765751988793093227379870459544312330603969304256694412741992101068471096204900685534047507704200986521101478772421205990782045000887877056384328152213890158158281411613407070888539675820983989895350627755278197566120283619058919887080086829288063322576644392343016647843633957594025366669388173499404380498076985037611341827280052963637639129916019376795185857316693698030055196373607410101627100398985431251478863242108219470462453669327146799136623805405389224611633493843474687124920941937557374444503076155678488433241463344381609835322655270769576849921892809548936133272251638496443219650413141580768574400295939328650104384953203551290372167238240512289248666814496675174705025903209123488115535033930743169092713114342061584489457924766619706051672775465594579075175313644555941565479707972999064119289901930904242498273533880224938751903298693326749599275933400758365343743266383840534407374278330443568088633075986366045540052414234100106821020673615497237778509811142134770232234239706729565103689189511224646993163443627524819157535954684737748546201697837026145287459885418851493597529627798426929022837448895581228280406659195636873891472169981698925378193275028027989482837318386214923072563119790102816363623529151646549331697579523787853173558273109114272429458964505943143078847480718844076037882538589194962626646414929501223821811550879052945431112077419354034133366305555796326480973040386525574142570810440707392618522193946738293065870792854759971625173977847513757218044934179306999450395424432108496351044912972376045625664854308417073436429687425243196964782698451992751670822292809541849167494108585600395200184740707676769935561501666857813332880868977803002818559634995213001125552485249286206052668749059282471009527591629754545555509824090811069689300312793176807323035158053919681591765519181684106398304107737071639944520771285122950747728098176238654239454980042789821899526584245010890927676313660243982017559795115141271060732727709838399513708789042794463411984859919004300943161352997044276680895145387240130658188485424637994131399943209802777030050768081076326308295789745748562027449891683345330564750947551973670198765733695046024293238401234201062304145759472821688786993662348423261988611656715642551099448639416964239439237830774185741108149318780191158114755317809845715892891110891245153601304846904199662661458578720569121975451151883468944094682923285875020252466216756721486739882962489922054375618572691750365887948192305269499245404228890737009358743056821710097708400070141887547521680764928330501086004217001143008105619281911462334307071013573728495974993585897793976646082922553026034359604749317062111410994320159231720386953926730564586681370742427229126260568767580779130928979792435396045509338057922342200042914291938258845553365787531817825203053839064949311789134325294942632150249085966858566556316274966582933998702963879043509461148983283826684012649031446845830272249361359936961786488828298299199557324680912566597416834424785746785091625134056970346584047681187098809308840988539396727544379517950510723914737693198353433212387330495339947889468549250594126011716049004793083881608352391563254297856048036547110614714851021779582584034557394943726198690860726226462496041887576090849191040233057669499342417896220578311121900400503717310617916231814072843942369150742696942338173922629315493759569417649288849570125885643928782125227168322261874200550908835610692754509378309244789857927874680330831547361514877985092767588653394419260629005534904930855475537106004455835596076252027613300315391662856951010013781553401329948207058869737158048309343371901137574200853232833751291597729475627311265456078580019505443047813254797108445180178439161364943467526326401262131667703515576148018418709650432765262938674986383830967116317301934877902164100362151887061311585809756739203857918285452010999838431524484201556585398584369321792249787764385497845044950427888201968182015064033617962947905232273609961083294957775061159866017607361003344436868962704608398874694732644068902026760713501322153472540090107461961791211386356737471406972997390425153176063070575581468899925611926806823812069051323089550986171781755133704085569050956972104950089319301213978455387421084377546658567833958973412706076347779053817782918377086474303068105939833503883660438190745105976251456066576719159538593184810667862947569403959400630747306789423113165854208213395667171366108138608865709837573220223832970993091984219384793435356278385157973378058754281960081828852224184925169703716447309769777048049947628199794195018199561313106499180449921931965065210505786765242538211924388010727092979122367284932507534503093286448724378272799390173389643775563796892519382208447785560935437432097862368355445261937501860798672051029351123336123778179181226541104673550797013253054114102559229151398523777084420883784022907072270148746646828362554588761254382848925792015525921590438552485471441431153276159944026982208681953731821845564645563648865676108614978314241011900177370819109278320032665544069351690108144590374535376755085165143545745509317358577240167692711709152258307033334001409769095762080059796475918392064135585158722627166750591563718370923448535018392979989810063733981286986940334405368072480265835125855776831796126471737223240774048164808689135398632933172909387294536368800592588267219152506564223910935149540533018803591664795042479806515007477199409270679912616206774274715391407148706101002419257498850703764323191293392445991747501607832172124729586003922751335732107357313427168479509744573860450463197599724510554107531226088256465853214451536042146713253229705201310196320166221495452854990995792191919352683589045025892435322612638923946530037808262739440001372409804509591721569472092152587667265819199745018343948524400676493801387135901897454058355490769525225322717720344063175072699251615506504083307105890786294936418599580243989307828668506940175732961122381676738169725033817309991628669657261065956381148295849067092310796745178395294256772873019132565565516835670839232020821856341779616896941893123961614502490593070194446320961280885259492753527749400275724377659945317475046003674696160969896335677138697875382240128052768504791260225043334765675351348676666999601865849292519537209997512880562152953117509260023084887425196687264086101638935708194000490121347918827711054937335323682047039988206166784376958582411904908292917877440627139978392305803954940340519055569778543021970386589706413093315581606433546844234209650632149813321051842228420280186651452882520161104244455934791356180876849910738685476505166330264328384888541622506385644164615256169333600935660848030974905205258638842253176374541705519569477548906998956614232338617879570324278695551493329545009543472283470411674889144783460928144816458493119412588806949271691361997919752199205175025975472143793949411994560017343244971150068540625004231012565444437456831946180737007356302016622161183666307034343417937865429163767449868940046798708637231394738986380753653877640292502576850885060689232967823563395161217713526815669386300347072933294551943612621628267296247883714548338182949033340174827443796280349980303528780251136515725801864449255934411784766968933857583519871946805775405208997195819796923504281596023407279287010453347527091683393319339241834376814910729358533116733989873553116288462354319435527271742474994981559546050870343951107203451598600081705378105057004556353303616212568608202052227510265778353911667160573105249086520575402037326233450706761804956703439712412119218099607828707031184011256164577004093008913535138284950228096304860919033455794859796427426102703276449628664119669145811472817742443300528999326618205126462265126500031990014630326451948502291843337442479918826488644356298458276223939203474633228756036192305862240819865324741795461114142448176753730440090909099656604762557519315809303997189984376618583771567610554978261138627200314652640424983016105183504876179581898359359061266192763313124885932745388676249817051130476141825279101878518175546579091935675755099756728819442170581507821639327690139935582421253887118294722415602698903235543823243348634162965800532573293541542439958431247685298688170792836066520842960374237744455123067042366885434356948713625631368074712794801981415824361628865446797252435171260608313018740817190603514741335154857632442822592530949680428803972239485652384681433664977060107116438240430376286243804727256312037482711194626388913636792593917840628981102911510802237162731228729580733920817893477044211427783540206132085523187100011079970383269928283285044746840444368102050627925982569211389121761695722163510075259898429479697398349094590798532933637542239140559377795738627051358844077296456722975949427468922989834883824879975371942189184071157845615716918693718555836787275764068316188825568507616134085682414183428844481352011849924899247595762753833456745763211876563078549511706778521017465902367039605177028551084792117258648189816189025060732555944241987713056295370560351658154870567173729361407926452844380646462931359278802329810351178583775913922502888467522844863170632254742250630909890047798635947380162269083883370263879101526449919392226105341848349596804319561493412977268161458635541476048012688296939554861906593269069306116683300557459612975199729765591327927566752302745478274226814227988548011737302075609710859689336375500900032659279294129193335418491815415242833678009225360241771503776380097402420715417637259800575225561831400098574600838104104992502658177906371905361574513862045266486473792836592989824801994296410096950546948717469116887457254114489094374071779345007629587875337451804782601432627296800551338225976553115402216361652559269302579129877852954595718194356438005870776574577576433960324194479259557966527368503049969780478541077652450698893655845423312741824320304045628521501959301918608522834200608603183097701528747165095647481872880496325666389671198234066205093805419943283685511883327140345334883298350502227285656217831283402863025353077698763499593242570073648845131603280195716993663780347664669280259823744716053635670584596427917071928676004999173503854957997577495930583194126425536529706495986372109024254686864061107368422851636136737632157256758853003029081440885963688258005135440016715780622987401771456695802208289479291551648896850793354155974532282629756625852866968529847800273981608884763872113647076191568820463816239776578438916328986827475553155478267262675989755611350700224750394877206012294846586919514019670744926654381800234423831138302393746460490374305376229863563611937764394170077758622644334809790995163549786303193078183677332088518880014965391936780405313867734951398584688994502595856391087734937416168460388712632581460997740877519506946167514687711900195335174500343540604766204092246062626356266027716548416508255604128776671791455690422345577933737273738227235700431786608809294942317642971218759029703967119929355723022059085037122005945881565745623065081930249039938550896811512711783695142945615136744414931807020384866341935217106684162660022542951001977980684151648708954610071163515073563447829833108443934192749007905396718818707450688841571230369098646599707042005163002219324431778189632894592476676456969533111960229227281514011708778768805743564829940266923258031276349474883902032916081545842736359611733721711318760754532456589080417435520242475798094074053195731490940414419625325105437868093092743857524429998570636407493341229569325884772061400985662431060289670535592466603798467393593485223495793561456407378293263929799931343681115293038469872202710068062346800475950839747429241502990549958859587297282134278392348059929082366694478507703663732814486661761400148195227275104149542331562832868584972919666603814695053771859678811031439257544326903585737589470699098089462221568018281964930944671343382934465242885849611984734155672968194727932188478536962349943535123944724899180570829874324798750511251164110750121201327014660381382763975560932170297138389427002841985530444376508086297421049077219577170598481206148801310944029648001684104783796699944617632890644582416236546331438658662192635037097884801875785473294549855547517265160708235595166443624803321986185548355487633133170919679297499952183548323876951400326201876286259032339880792214115981058522961195213354227081933943742281365363594560751085667048550701231445331596073591156014087901434692380018892749348159602002515171617619784531806451058604555635010022698073866652993404033975055498628417250953171177577332604652243272793499854418797483618593470943904776954294409448933742443610365489351064383350137411134239347477013289410931739194180890315601333454726960669391241390221909248298392110824953501376323086953204242786782702573781286505233385453759360743177069664763928820837903276027918401145301295236274191611872778091848619741419331599861496097011829694436961827512443965177490852295556345963343359088230785436471497811551813896221940354008341976819358176414328814742256653707750473735170810295542559199599792461676881304592436128081513845074096262753828250406922711859925822722345327100841382347577907525307653866521653183135317950558623256267548514847390757202110768854862762399458526796563189341821892207516740590512382841375468864931333110626107111347595434125386250840909886048681098812298670335267831312684125399789911331889114402042769415936398552188300681767701663315908014973963872105048065231422228351313096724537769041484899235338472887091356877612851541378218908409052397457077425477632220362976627875017765364981465231249538844069848983420034915640440829723934976933409893784637438776715505910774897370624554105565736284071189428843585204035559767062801148838063688335492313893520422970888187600163477900932462108201018289504534072311699619627269364196030368918778774529099792275433959725506078167556232187744860557913761859647384688605162981577536122101980518631289053780461687014878576266374233068566740000885110822245518407619232624771013901054629085853403257878975667713763461099065803747758278690490193345825043487218851300787836377054085964624941950585847958979856022444036295452916745336962250585986981459779079574406446332535406182627401473278023419757814615074949213760331031696608219225914904080892521808399475822171508607101604116571055165638019656764780525699835867548629483748961891626063918582405555999431881950552736832147635416138572941100731826329773352382019315467422484291718195817174559807210761074136661940285728144982405024959325808104833239739760036176653369718313930523979490772922301505199228605604041263124087942985704260453743876982034484461757214334762053277770485770207522615913299177307166289380341830102700681884344470440955058924710588314801106528750947994959584526731756374128715519784158084746292371694625860190799946261621908236916204829376990973915407640686733248246430748715634476638219811401465295409750283236254865368385090085147166882910610051848312558350633547794468706810104099483255077242674090466275690948863588426338901229144729822309502128893804902533179279829085676161999860526707773463015032928134060081342689145035565532404977186055964870781509223337896167173966993942334242846116535913673959175944733426527926182863707923640582456833668971396563690504877409704967407218365345164048599428290562602749249479573918211920864126984322322579952452785453041668887083378023036861575854174704362719623612599525011964085764069106410652884977855048214023429646491692237154977395606627458429691806751554729653587429984168299649643334258138388079376331600726766476655282078582280420623662876686507196246445799034297349336335701334721877700077433463720969286064168876553376482297231937981570224114182735281018269290434366738107939164091346942545484819129877998424780084546418037887344734105788477927492300823406438289942645624455509575730794460063474588254672216821927386708429559318082948649611188884881960349061643392579016222614450347222731198885808847959171381118870721320663598510078457048365344404591856596585578245192059189942347527242292372447473969044126440485518311156549911677310584648782865057623768328197155596181155806714098295648829037152713687309732246533662760324486137087542218537039358001432052373915635505844905928142862147406815667896614507464408393179355434566316349432655187926849900881798384899559200367451979359927833881800771814886618722947836756243754905019872755251598446019961917720491671094818186567344523210842645205788726704322040059122604142848540406785191880003027534671847951782625477771488118206145571130657701575324971834588854622519592930144638543014193868434362573412959256897474235915402826549447361918326962103515777445132424558760255453432342948469307558170038696551684256832037292580354357260074451985346148888844390315749996524676836121097044902559234902606554680161547418375530319805933301538951969171970623510494010933674631496078276011599773935656736970287430932944363119325672065180234678459611147828302048974264558444069503204141111119228332053871250155348797678914596899327665546197409939529370598754062544605702675933012927891187290264393088984496559984129063320033848639269807114790037856918978824506369926624771650373275505919390770431958591321369295742889789948678551147611655239141937264676623891521050612707207818505653375833043803487118021470679620377245622406005011263017195440803058099410256713228159520196732320303466982466192715868047454640553703800926678379327989377331378464075108841359551524419611857275284763914355024421715268019195978316197849633247489899879951219834688669934403688130757679271055443454673969540668097876030490560626276871815052707136531247810130460493624847764660469542577723386942861703916547969174777041794125921525256962897181227553420032560349016699614799748842157838605461205430118892219375383235680400783922621910526221972465849246940508106971771532638269752611105886323988678362735093015115871370666657994771858624417584177031507099164880027213731389105045949160544982047327996338936942650059358471002644760772280639561750151588473493838354820912796526545031141439424116990364871602734724127553572252267574363462111104601627194245346488663647899758331633871571591152791718183669562519286933605514884125681743373474766390089690308470136678421304012713658900110889642554996369305202604497036036553325026451374486777770226074171414972103218833583028007144487030048882417009768704768961488799882285530956040929001482366014995787674835007005263616385492049786547613401342757032426291927419179973844198599416197501200713083773900077107955999503312944306653626165393834785081195882358953838083008013567833477665838064779780715614693614700973939636467373989680812792018521696535179490894445287112279017364249672422630015706361771625664111429899414351161622993461036479602998969839510322668928100882331023486567418163168842476743806311732691461495730743395691133624264218190347122524320537060140710740579335157863444048419647786183201149490314233411323972254062404065065813388567987643212307516083232898313284356518103665675137992344446535208052438852283526338995426659225966581201608736586986022600098099641105623797421291173096354196957480082628002281695093892834220910635006520327706283098100568048731525559307510748142493929273009025442945593506282460676068818163624787411361823643842653298244734774520899813267547680721435421615385970929667760718722914086470540623491659865486885090517531641783145008051217090999842006570961171778004693254669514987060086481053905323720323949444395652704524206714659035305582360418872486513511969816452291717400133575664874604168006605837829779651311759397237198114361210940730436044910171578647485136312067941344358646140619200061273180246201203453163697231479205106460764213420879982962878068595871808657159732769042945328645440608391399952546931149421609008212524682103352775690959262108523642223071087251856158793988030841390315582616374318197517546398127989962075944473575305796011353076779052193517098685042343322639823069245367719738172372841342582007571226478493203589776009502201122966600066966784113588961161551718456392736540012132321617870929726835085385034332106678694540555650527364832467221562022364555536083353594465608084695330398127793957207211938558290860248397474472682273167251996936558042487940335166416273960704431271681795617845818100774828087865199055108874131133089303167021784573937685404049740267816335047996909809261515347946574875711141214822197067628236604914437354412761637598941759379417806885724478225216712473805916306264000364930301225151599278676863410645697909488906871573916028791135176006503113809558901175509839403594674093770127284346035890799055506559885276799316321987339655372132570504024103615825606057093475116124521791053107984909628720935083996583231428423973591043400478316352299839691481192402365826850826625778394624658846146561260824934466454991478211859069388560300008463975161755275865861382524977994367051909779625153454279083419447672495250291771031611749221683585625479998433235792710333120809210038269373292753293161046600432151861063136989300474037152791269633802793212776403020339853433971032750956777080553690084585695005606680178631841134861474483891309705501947072137927911778796594941021669661985511254617316908116236722978336250534135149750797623970391730596528499214672598307793604831124520559945364884034932421947812598883881394512446558216140152240342594791230978880351191700778856397946076387039656916459519915283717850202414488031310230411661820208685507401236271350220982849136293997033356644246279962986560505887167566794763666747071340748704678592481029808480068601287929318117931078975051344365080200596138895345193841082448059084989386401059278459376724468549545711711993394805851734928556137941451896099703988183369985825635177618296784234778885399775340388920500163061472667320676342505334282564387954826055778319347901504882837885449794874479475447317486719272193733536405884011149314219654109790358705595924259843322967409379376204831073240066965761709810422210482392693245811518366416183257481431585240286698739554699300872890638319919076872388225676896121234361525451405252730035137792299089527299633211466816304210854030989549837072419819237210613441627219046067471919262394300646735456748801493930362480418534448294363273737726785847647030069871212794477181147762994174039743768370420261884314119690968189283653752270609747089469246078917919288716031137897992434866726320265280071187287743197440637663764507628921338961522706693045401516462533019427128815346398320925730722660622010718356217567900886373306357252668724283568984592755199652657256058204864170574361420560263420317492214592396605738660562548014443582069980654029532451646269315029484472404305973015971171107635322259304716906056208325499675078118836674237128416413817749261162067504829762178038047766484306665803662714329296609898108754376188888134595322512556058626481385065850173740645743637243886906978005424107148119225559521812907340287505432062418120075923179846659559374580344508774775762615546864295705320564753256792664817060261472231675772429202396248287657726697093297510399702958175012802778429736387311272980957003343848841224713481473612412575753510663723745072860006668963656447997549742601053192752010409212758763501090359403967214123039651172594558546369160543686211947683153259457192312149224744571134047010001519104974579496036938158727650808769950594875894452795463246559951665406590081380517334965775511740869710113249096353778006633158448662401799675468741254345081569965976465173459676767831295048271480916594956552249363722659770934264801647244710262157590804657014879549223460231713469186817598564870068876899235680266096673562575519414830467017940198708497610488173826110738110755718928588800265638955896058355262499370040079982266026450033759358350353917288705058340075559546417890128277416768480400920672547714988254849402452868230946110924082700647954901698306544761372265257441509094554271927396823155359058640928165193519238395829704144974425143525606994709816564429380259502712610132542150150943142007238313388969836467475497436333701750268867968203714563469997608882385109056743593681808403113103611544259117034546886255972332636549943612470859822999856563220923645473316565126680013280479980096159262639293795942297154199788766561764686916019840568096856277956884260501078659171775974894976220604496407280473204042668592206888889693826494015648696958602209130426812141668480420508971075539064477034027336275553734249523568093779845298271029143947856421410487564538136500256221679490188389237880738374525822711141148511604526598106859319562552370088658714775433734664327966091713079667123071024410699641113574954585075177312653385231237915199844537564144531002144150801416798776609481510866919517215313407915604127806699262403766525568542771851122501187830257838107092347262312771177768614529958375453783546875201076319554941770508028660944753548870768402655773339596967917073891805360518945541123009278820712216574947792500290922443465141274261566454997425032643964557652744429969655446679683214708826342208195358932348920800174271271517668929703969058563939836692910200791235361840065486504852540032001676739908643436640348895001154071492160370472097954992359004567686837683905361412147377532782624037084746493654023622023375539060792097657337586517568278553731674784449639510133811146378942594792820764839694185734070706841420532715349124781291439343421661488564595427464588374802352196016172762734470252927999627326356354938867331386541922808025450495339588352536549421242792463784364726730963433542607512541226357997911752577035170421889452879507305624356164052013649298440268394227749819646976566109816272722452252474803680016877501931190253963385719153601552278541583866044418280006860535012511583087043430544860011671708673621330864716020084150370056850167647047031559770164745749159429649525909186139884260451102659886166228173262161652312844841944020798076698761283730526878293938826118243918709449216508436830028370918089829582436067442839550746862369723734524586685959540092508724334421633011410883846576841659519575324590699085455308042855690299473424905617934864066062903078319761071100516698529369378188699885161132782421411923734790949557338846047889668782495291628802424280314382016290031721092317613883341363001670080829563292218502829412451805879699964005034529588003585460240700042124983570994395173734275102374524290975386328994114064255441219811997364485605510096174796215765907120353570294952980507867891081926934369102876747451616808122124509119464373046033323342880867575706438867390534490256831771730646285167358372597284456095009309053138266002277704444314643088704750117829905376586263740637282353170981291388893174232976471311249136388839454195108876704097283217521510354441634690919284062366059078165498085015858327799278961202755144195850248838133372610206504998205896046684967957802513052796992937990443844395112423059908117870720809040907825217538608007908165662933073895624914338876701854341170318341041834042158613256343720130592579480534189152414140370174806318449186057043386738591584850407412628359270837340505370301288423080080549708784211211595661340932114070835789061703015408122763669000742961502932965334488563734582024200277528827582569875821185559837349546897122892323109351757222351045987983433436924372823353564416087430283723962066880507507629363405718449249920056610739478345263710125573232663673144384114771955980289316039299583300976718169334668769097116166303187018569694501015609445896973881390312181039512388606567003089619218460748558139138435302357854362313546318348569952747517679999028087989721419399422532115158297696841620833920779708972579791363025424128783974396878543784868973582802969486501389955588807222184216938285919144427388328441823696390892356143614580114868800116618682686002721406412374550612894114445353985000044247713783924434687507327970148940691028186101754351043929129341278260515167188381695594176414888387659216381597330271109978435632351033690657756562599863670586649496508031947244812429465251491408462622127367416110954246620344975837808133225844951634255167646592704376355346179903166831510831087633982091394660710905417321411544399849318173633920836552742331121817590452642146690529520319455405022571131951036237719434937291140576201262964501677214203736390271961549807392093006807402833150707707913352417020518099809430066297650205827834281426924679110423468503652566933156137041120103223707620561914264852876319627907392722619863913202697362057564866881908557978057687156688301477472626732469710922742580233989160539898996289524570251609908687249552626854678057743179710926756450404699165793963035782389649974352075735358416969360144714240306616938873762231194151118865543112202957348849961819343702209814206565483232601255520303831284083066631229592904206941106765311659555943950110772973659583430482330889640023105471933540857663828301631844444551290997170462077961068416757010758825134067666155057092591777828027134840899422428539121577835243066317137156684397680793681301789601254344134637540312734796711816890758406616688484314014816022615818522689449886673826139471118637095530325311105141839191400844350765126097993122515058669086881812159377288207253819358648668347859486648841684180475105555578624758041643152405967219177171448919777262583771915891025895281328311648086036573030386964976502091878526284558218057252897006229049376481323388697521369910686042904245277785538684466836638592766292759500172253982432008379447578963733071850993963552581756626654879102101422725539985278486099367127846244108097571416413030107502260648841770309676825770019813472889124769374300478628378403312454790769695975350112974718621843815628222530216842504872133523179517915135987862381863649839311407088143772092536265945554171767002441044929578622169990708374193144148354178773738959768284967690878479555026641379156458634564478209987729632388281287498259087243291744670705207305756308587969364559624428458637204914720162785305847137196505726777896822417908944309942658152176479122192471662838096959913644053347276171338546392964029001594707964019069207336858405294945243557191159539474761849224769914663121203932118772679580650359402812191572770831869578992047409329332814551921869149627138915347655385125255431302096343984022351835237833569246775017502788760674836313729769926026924025732960179071413246698228072852995037332200675241692677956514839692133636191130359990739895253684448008739459836981701795270092447101197592957576029589562253498438811808189594872765610193773156207075446582479358268551139594082173665476005303352901220383282427175395850401512534880205160560730418869288911743040525771131371742169466863319788102071156506257964942048802577896178479563207810180925444369767671319418172291233766841015061638489873638511399317486640723032907862517271456124533750680484983612735673495785285165306201494527104210726660658979120621672604166750570056065433206637831141713282332355158333798148272591562270849258614710958860781314026366801980726791265672558979981617575171481152077906646475316431706667812200464754573708006227086921100341544394383431290150863521818861941696894207754777632238046628328859824370749900838181651997496476308958804680268304874376204290171743583473407127071678483709162531935715297750596237977708478747682326936044143911672151142976714871349459831593521921189466656750170796463949448809875819567165480538677789443853706256014170159882517516660521296640253071165183307997153666218849504585723885704066769992385019735386615166461631531160464877934778928028135416376848613021813628173672389395483279898764847131657821115463542174276907770844040508215662134154657149977045019436259769165970796368507069708902265630328662485847214587462841232024299652998856354073336520658663337183989226199112912034081451383872089394414949151487602382255265706184661400099706005247442844180864944721855600917389849569735110288421898605227512072345852730364829687472855122894830157619550381988701324467685463077191628520590176759897845511568780675290697257472127159186363816483542776527202851614736174727470809205351744193482871215736894953322688591683800456890022623859300904037990673221577722415178098605702365643676407342480680307633919089554983464681428131293740784426293988312985504369308293784625113473685714260554656879182374577591860430455097591317294475018064868368418034646938482502151023620496195393640162681511167361604976984496353278185549286333541840970433110618327155540750097434457707914610555754123233595521469069877638166134808608927941505540057090520041854022518483167415439750170675296948460457413689417476496667699783567097108748346678151225541422164118562566393153635008589520212676613062255434730512345429006456601343212769926095069176794382687703570480788243100658988543743181138447733662324131319036356514248552749604250778647203940040813854780882938229243451710750977905817948922343510394758949460383707783412424123274848218488382043488436235174901369425628719131528024776146581285380246180966342320560232531130904609742598076047707107159707413230121113804996166323065289787664099818885425920581386739474144105456994209847097316134624982610803654401921786415706502975193365175645144026806861074131121495912148294824142869616010987621941010560865560798196973384950463804345495961452668164458228580480921588564899662404931301146789081789952152830381130527530445660577745504273472308985137571446576883105948905315191460311707151214682329200571583740122778819719033136577219527579860850878974386490504184825693776336709015678836325774105638827964670927080972441555366796038263423137027256092790752428758927211065327044384714197551999059676394034112318778445038312974965835074500829587681196331793065483885131474622092905943254374881996600932425864272996298021042176600680393079516050062183449066062069139024312661977250960391907669671922875367354003759456845841554506055085422086231603881565716788469339844153943594542472702794177230546864657029180562550006122071852292973679266630462460494171066767391942549869078143043965821334335674459346302048384561098383154051594069725346171521914607113632343958123925398294432899044161561698773385325923189650433874390445147921396034256043880880858195502333992581474877466468982847231565740300866210707431316083643417243456560006355022668922043650351914803212841008656959191835102234272888022719413801574961404288237878661795980668088074032537100217987988660615045660023258237482674504113403600603294365218313225893333107050679419675071543742584079356142998631077569193025871137907626225409842670405447754522014770540548392479368195880745182241347539792911434878367328634393354042507580336885909591024290301052368281130640454352558239171286128521620317095368462374665237974037730639467759423254467948445687930009944358600297190829168782041519791413851658069902685574455082825900175481541168081045035962483992680338769728323334842651415790751005680641607863591006218879688841489749396329048329756729247621854323864837333493967014530140424560630802806874244295161304052980114162976176586279035011689355733878659780180055328750596706616515403006811737350708902595901187359686705829342039764074652582014317702514335305656892409733426708221630444475714544734032685176853142764553164012584357112184263488650947042043511983072130189702163125145139341701347116731287883737501528388387666997751543098276957724057796994828150820332205629044064363360748209900750095791247293235111818608876502831470155043273880100836122048563051997350168944855892194315849594768000809423313922919277084643405363714574208538978070974286231516970172644582995087488958244349369680220803555599483146723275721688981878414952699691170418505090296861459329275449777494820991274621431035018081149379711898403020699103816329092575434050966514756985117504086090832690361917661869621792571525980843632498422945714765390046508868910526202260524479836434159993290470536803933827913349285620431371924905287938825021175387822132728707223125501404693757520752428473083170805537754119711018360146076270305627190831251386467595131975528005770449830821784391209085023380363993247489034993924629460828629257246096814333473216358925846568623516736671608490939256376447804093270370357322970758114693679618515406921512933994393928748003825676111702775046708934160675847133581308472769886133793388373441230425052681665721316657096361650797128031548855866049137891282669666777011793141947603636710100928580127695688308632689548827204568403634929316993598509334617398792270353578190846251673157848439857761989214751939361320915857997994796414163218799901262746487684448227058912590851949188302489440579889537482563101327431244085535874261287848153559568276888774182337111745739817097256606686876683059859278136541716453794663535823478927273314941124119053035409200104273970731486899511367238027728451124625062986412439341324861779716600821437406312945714615467605118554805397467499912713469609541496499290327596885496325066581241489654221281968168172723085697981237392438031169049762317052533681022100916381774924476637451563619392094566022375814393316147446191074487884086900745590891106112325164420240578075916935176584720673418883087809383524255331790901368143886805315555163379863439588507099693063601785086471496476418335731138878552547561616683744474664708233976351398120032638905501762885040549361103330941913520003459179984138058997912507246412868024925628123713576858939016756742063891008399918802546959477522130837835550774375091305767959281926705831565149903939425933690218396289114130489361486912291996882768565143681110204917520638581397308869533246890358590972886562797441021678043864684991987507683091205019243555070817642989890851227573925632495281210013861363088863166588615608133051046991681103057478808821954579942312990955842246353424010065998105091125494415027063851795796244958692769480215624963308589238975408613705531761040236096193628205860682895033142029833801988625952539451426911532582043033234321448384073040416782431288689830173689606093191928418975489552156433748542938123735340351352927608777793060584028766961373258740872778695544707269103110842771856787436815434900514942486886075475765841517236522081120828714300265430686498687634643972195302145873763002941324343341665802366060953933930939849825147305129659683967989587999870704983681544107095400331073551347737543891457940393314034685924310702896080418567000165527879683892738742680431005924641430887847352041844076672879671166802278429614423243136277024893992022507458781586670783041237695635716925977542055728136224434783035103830649738843293931447176744281151893516748720214434655249792732608353428417817906050592949827416292391385766243199662713896129241983996811424534031594730801221497975435238126111120986101776113691240922713333575234180490447134531863293711483594472224809246771854764295345984362604933482338020806247430504701141315858854934991675196496309951004407802381142885592795140897570088451470390271242549054253829786840371984646345154494572423799972766912151231290398284171740889935572554311465184014669035903394770429777901112841690217551076251977630841847567134090565569444747095780601597033746597446242562569807465389924968443213718895216438768637327281147312361166179366361263280052442676322581842285126919901478446488063839625027209556364054862203881547652982485061553871964551634943726421340906404606660253204044657225303618589585369026408943368695095417139296642796049057812141227189240026174204954566026415233530595287975972996125073707431878720679217330620586747709738256933205032464698912032662051648716247586120472572681235144171036880293164147162423797803395966940782848468562216337644591801970824442670968944661437623357677765094007628047372929060393451381042128826728240298518704075866548236265955471592490390794625947838881690307154173927486439714663836204935292529718091521087488207079880146379524784932428531959587842048120709991267949705531055619085190007090822562286802018114510165248641268034028822583258189225617914617333864321168629795186832913282692794110217010056828585894548110937115936163226835190376288517540270512413608740961964305177494365977861438779525652476651868449395122425591760156080126700002874239143196280476461467758948430474305783986155596374222627620037930276108589880829119157410704594774740263873023340315793551712373232120048743198242660828890215771197613410242017541865464974653999581549409683874116157033966124159421202389778347248738811174919216639681746086965836315262372566508721732595358147164610134586271259329894495941651406819490594259296233007612709542888776834210587313469528311844319713896594338557274206828774714123239789373847888902832041545666180839764756729723056057496294072078982039338061609176958037254325399745300295291128134722847870668682963923466319723208501680808799369001956885256707012818690836568037013869986680550471563167507760624851488226418025309570725035807585093221459034754329886961457449984117566527731508998245641649214730346845527974283830519703215037795975801356617446495857304135349965162560036133570564344839078870027565172819015215880146849660540961091986695772027914642656039603452348633942989573058497737060341241285479054092587638680785288589053388389076365234561822137526913240918007245209656351015746984130672882660179552246001473872660871162874341839617544173029427890706169939065655230110129543388626965958988249399983028802530921094694054333401253756897178661935605637046439647920455861886500351117735052809362585854578571010227699060052629732703112597524972565218359989697417612696671086215187602265898892999175730826090160446373377841742728652545491135306919961787397599221812755959496891972532112842911474250916805402561485476853801788523434134299781094653735556309120205423798694422434662397563204747395076438606294116455248356713857272935977270475617040043727002275476218694844734995572757919777288737228421737715210265889730725404470680274107903716713274312510032599252683973771643664633173857311593333913202209950949853807281011103462015855692936783104955026860828496679854378056667085849338580626846228758360649437820570683740968724460195078391552699038249489584168941866000415007966145601453032964119352052494857352367256368399233538741450998087571190606874074258301228015769501813991746286331713244701478882070551479471254101298094516298052577729331097056289521561627987756047664982356509129755498888433411019632110810306389714638840179160836955565804327487624173404520104873540147296630878388657103134341587391968462683008453747441486972682556564512783822440595392870823104918362821282905652088044728980110932777430054718530627520160218202860897384986972852369570670355392822176091097813783100769677333160092513555005872994695541449676837605060421792306355904582627096495818331633897714759053703235528829236479524162362915402568761946595617473730651305585132290922160348053872351060311287886911225337200938130274311110751884437976352266365102799864606161264571094075400906131945963415383998345226608154597608493110823687282320551741154636849048543380920346598559345694547937556065778496184500907836577164519757658627350819553867297731512487416247480782441444147321877917810335908992109317916961236489731290052649080438145394562240699645670417464212198851187488376477754737846818953447789285703086965861621273305727575313333108544805731871587707759202731970105315618275872019315688590584976133023070432355989303306278552170767761537202851871334774686110790186333700267496442977477463727813222516243636539460124943097150024220767736137542716923260390986372868900846568509000283786774525036257506212471659296151789712829146206024718736890938646509042982320430533992335113989188081237543531638043236357743403953704637546237790725659723413528955345528151052947524978375666349496691411207050869602712019631292964718325251760193601042468037832519522677054749622457666058419150862053639995996975461854115878533102799645337298446161621897920201760028779205748141834980700413985401205097183332863656481032917722052149880210295051848725956802429073927008172597020259998229804973605607854029683623163495268797554675866617905814063219997430287038092132327284968673690917041320980717928038405327290250777203043819378799735778661853649602310561585897303072157420218719058620148885625326102465010430053795557784167114355585841412833931791224637103350827601448492035700192554119556064055865509529576926528798859524315543790485343809113454649004766502746452086155306190387472285426875815703173544956901152496034568174143033456348990140726802018248522965177631848603550527099356031501630058682765184244307965957898413283143049405012888828438732016255065575447660539494806421075133131661989916502464331075555426237029364503195419513347565100070900967705954381005483228802651172428994695498608561390200456590367696521540330487546524948313175265417306855930690618175713033559440464030830338939566724249029068103579955469713599541164778557832913852044834940678488245064845947501399511098736474450930135760974079374615223368294193136117955549676508072090278044296043433246515633794114934860098996476362977906039225294510370857709972138752965035197971335493007580085966127095424933820023110478840625061342351622606952035330095794010070243737479831151207706339120244418410040201826062987662173945887975159307789621539864540397194877952634414797464483341639053909278509035043681616262803350110547181190290837968230171930239896431691841182329311500149792367083328603614508773200902624540372019064375086912850248285168466667482725289550025371510882966052713124717820797928540021548785270819428062212182078187808304996450075832961992088903498503056136326243456248652544805168691150845397915034144067722155851905956643967484054673995384533578516921608182097531875552103500249098075673756485674777457314948330827965184418057395560960389898558422354117802291805475680873055894602080519075528298594001385181854920795906142399482567348110800916434645071453868346732860720018877724637423491096994100478655222421202141494843865906818411643087460062010803259050114225790625164785418850236724780910113430676128161306133167683864862770877314369385134476676180888806058930484098983951884223723263780530429447628033637944526541831562365556812840839810682556264088642049187657957222544734088180291266213963294274355399042998269377997045828462388588752603167988571995150345381996115710506722340895184301220626224704063622425658855069863466273938746397722159635795916797765582060823764141655360598387284254444863547102331536586428813775175059470708904924960146095691641343798136746163880654998654629613739403977354183269532225582436749737694109827135437202532173940114363311732713288471442208339650187146456939498888406200154178531418299635157819982158165204868401191166648578827284911763839164053584136509509712203969772112480694861134734635010897795812150018629206840536617685004329731188942800178805776364501006190561493499334608925509537616885169726655734431602276432545286708115426441806951696890749284122538983177864272596100713240666080420633030460627403789280676897918386332664943862653771595254440864647278075344040600126376331173847256828620760237681496063689613705223877271402385579072275314685515994646597554092356096723319065181478132708404345597040105193947967704690331046805337935536072132809720686218075261762513356346179143618561321567854650681445235990680395270223746420570408409950185983032641988217826220052414131523832477184913508851569397809326559692709963512540059463290808217485404377645916094996994603624396994847166181912455284042095592096982777785504126273271475039449515412594002825333864176000170276735402468461012621475569191826877476868557591755916010829484059840733948118397763420760246463457594346986990647224607114151847620423246606660932938195344880929386948464837664660090789045620937632897354407421530773470773297584893924404809484762176406116281830499265021781546799690286231834348192303825482805755304469932241811499160666247253682648077762330670710620716799342804945784680418200655315984501786974244116176574508414555036578524848575672931359273927875638127808828206263026285484651077647960942095470039963852692479297179744326347242567663432777627387591511575147849806904304260573677727563042546847713335208737887164810300621114732745381610812176518318290023855810612753730712562457063468913078487625858942210757572071806569591958074780431801430349509042952703742257006581049312709990610177019869835576446556508320139345289118728164781926329056332613322724728951994258541961913647745668796715002745548712627960791430658745535680132773934797944460468359141745223159261205497551848782118153757393473468790339586124276007022105770115112526847734269422338962707531008924385221862083449197642423881653290869405699768506796659660763848058005341086068117218423716945099229033262028068699323004696943949501233455853339091224977186736223504012549123394235993043550197352149116010044511090228669553905175134931936294758836652967511142911352879313756584358795888939919883114537337110648371512296862683589310484773189699427379972945250897258608058749333579902792933802905150020770150440460667319692238184108970647178164956587932419089062595026576103916594911501076442208043189045996575517330795685690934054468933753178045692467831608807324560280573072280149748424443618745612118811545336040882158720626150510249443938393849518573601312693704515732882365634948532060088477721059778178322103693931522007539643529454160135765387725517197500525363794331288733447124535266584768239666803577009695242644673876179653693607715365755077618040074202317995984557310618171916352871900755168518310422847764455008176062794288752212241279087206602074038912674332476652153476463804133841248240236805027352600886505373351780039769179358706556136060566561757595602011610150592187504692187991169349270213327788870649852321110307955071005254309100523703678115249155717909535517491676235300789383517165667820401469441229641541372638056123795226857694905263124181874006088004838521988296959570247579553636958321045989818274502291097805434465211581654184169291267716304053882484509182316508377821471746659229822754296700195921169647358792049894834627952874021985585208000882194935589241228113030183915383188863026619054244845533847375869589887830514260777113464075736310352993723519794986168588355054894407439978326915219109663131113200399943775241970028021967139146144335945410133775898782163641499404286867100268116038172956544147750050063509218951052154141546347273925047348497411348180204021645252008021969034662676589916300550011166769536459231835520020719625670285447526134460968421114190675353826498894894398431037379986902394592718584401732709805251906610415497578466633401296394579084804145919432724538286306111148012498108254166291288196870726796917596329674713799650330553872154105699550832967936188640172895590249730323671943782505410911356170293131381798336972847359255282757091153181096230331404080150103944019355245347308204978124074610299669612192770011801294364205705333692762251887333521676867526756873559602594764725895336688905958909779567313312728698809603628702594017677400780998530928861371491349487077892450004946202344135958164916187199745258553730320982111790738554541781219882062645282236700328605494033656059744369241499336578779080243480783159223115872072068651239078660946293915930477341922027459051325070726747721375411461389070178827027899840685871505860930337885368397257496590204967676298790242831222916747186268655789047719209495435133870648356700897401531177710347801282601759648633882041336696511793204814544110071083375778592338001935292686976277223360662246248431349387372789142319553979078637233370892449845548717996431717441091086706023392134828519866261679606349894228351000823144286322966308552621244177474825448742086606211445763457241211048851440841037272940255938081428519442910748413214821957784951574506853359748042971278430113383750496962304606088454501698990359320821926688914796915955862180152262236367683900212728164744259198847491675650927418435339904640349242304535716122287263929530318354408546059021160780086815754862531652768728589655328080025774023694304940844797189468313800244605202704811010031214951635508825118137215677409849136955721210888946494638825640939688766370096184484598076098488456336464862907150312498556722894657619441267135798589636359603004368851561253535539849907448043540400050415606127958552150049259929988090833028523948680351687974734234734802238790058481441054230871559858866733037830660202567628900985347558625562502106538635029917560604335374580162834822144802828428245999026564407755241207566750512390075845858138911822023000661056226791516248275233037022015900450001242030053422958695556946263778431322839680149208892369278420190676304317765728932811440151578110322926533548764356139302842271877982950246452073951729872139005889702921780479988586976753691681282045515732852569344817721008912502229095226721028383639332693275494245032253735524260571856698409796302802854809570092910241898633845290813712523150362195172617902757426829155173846640997815146553505877166855951306507660746477400554121092986790594709036294980066634900576495928455645011088729665458259578322740101010793117350008065005478968233498371797273445404940939895335939261982273510465257094767676636857725430754396224620347082164610213026682950504857248527311104402470533169749876731451838881869541027548425485422115255824577074292175579820751884150218667836871174840822663247076256149674246114590902464556170832293781977958383308877889557617120544949840879045011764190435481935391229928833063967695755772844538084103847572191983656584215311402032775406940565793577025979538435858313240306773759783750667899112527134580596646842446788263714967313415604325857849765898160148609100809684765140924695290629721204884427586797583153071931294436017351751727367465329039516423865827086611345403813259340688138186953109139223934623992264256158914079944273460487925724686835594281418568438840291286675837356531109828229292408961794611223520376616806594967745752251953337933213085720174454690261525305424282328428927356652413781500826904624902140882358355026624854289834931329674874521767417150989761696300905763180120578192484640132752556276410925055896714620665054550137625209988889978719560126870660035444225003819060342861168591234615706876632930348909982280453437495705284818646858900845725815276957047662460703591455208475033672576486778251662466850698704804561473254101051758766582579005043726149950682880847524370561577769121529294477213765880913976640150261498844094066642245244618606474740937935145713813787907809453072128472356506567549236403808756679973510270195307380493057367504190204588569714727427219862413961862941544487212980404345603241783520572857679847356305472188990745646259211628366885318412291339349202201681523671211668322684116104304298912899318228363945088118926366464697345058445850015788798055987525357016381932059319629725100525115161446141041877161059624840148591928473335859299252009412098010134868705585297364441214017374114025070681290524115162880217414249900867861278642375787604331109471968359522660886176038181467524387888872153034899742391956653241583050580940798567561734438284902502490553619262708570820877094334406046564634593105791779636481470882329525902710283165299266686486874076524446114000537673983846165394003653273818127245514758596326615641431093546695022363024431205125398096299064012038547390708186040238167156937504725398929711389348391561902546216002990636034836952599438300946877182846892607619925802247415431786748319464675055182959256132144712547085161734820177236522303955296731671686363229326322333730987448326458908706224184050214515727663746386310710028997580853921168994156833293240802733687059722218500157504242497993240228343863082806749598275718777593117412171125684084509343318315974624130451769759028193091427916261523707224917149992758351901983603216844016142598604836266089412600630999302682569776938390741244074787677883037110207489488042059694565325136605289377018665332070428711517879282576853601889134333921161162662931028248579019822648060481288994712221848106326199125283830899694644847002201352432202644364617568946698010686524622667389577876982189188841776375215626716939278730184393396905000980411276667382019196639808058523570609538213409704955804308180642352099966981695048803033522250706737580715040453248068909099487200345534567525486859772452526397053368876078197231163667546201277704070412414264399682839974978350752738735192330475169009265452137751132269768295425327337775752499141236781484155273474214918551916848720883721141850195992504446067936665668682899253011379107714038959011703502396132303329664110076813507203955464761863772330916707298811138011749162179307819047706713445491186844506470929259180580172956449175184136524244448623711412924831053268104536197937523338925780015645616739970122877759066036361255372764575392377408194308912488216185418718632167754989713799946771033082112089171715530922228036430731027319401694226106075914509394470725993838925298347586161002738815804748622761317227570356964449149823740787064216540130347957746522780142022374533346476291845433210490458941367308927719224447106226661384151037995802357753526804719369022034459062108723268806317118496125439640515910136309169792593373739918117382372868290349224291022189357514560732326293507308185150620141936996494328723376531372033782046989521197656308883811342575864113297215369822765218467963522692140193323398120077288398849786530410127365134394035801406324822012569873919069893892713348623410520036669726249007448990276109632706450805889489073915438212923120673583148031684808279701019352773750891425480175078354982611011666507932170313535929232291982204210126418573876558962518471057903031044896433634421578245929738657402653238821303590266435963219757334487260181249762767494846203009112010205355665806694720300480913826327739869156675021464193487826071508687124028846873775599396070604511719212600756953121790324133327212958312111676621531499530271311278279129890949519487667024320731280964999315591960496031649554458032130073616177850886334590264478489540253317251656662239960661154690301137193378310792148423891229959799801554701799155539000608364765012556303933718341211777897059459187534673436619466519575621291269628846797626993958095275997161659121145682887285037043553320235054076651985633279992281480233803540167603423492601790392741685129071559611500128310944822648892879970569923756373237500156402001566733904387608247697964409497473388098889362329024195564396876953161616559914270455029613294240178332865260941089654739138679806111778281526362718568517198199759814933717374947730130939508549845845646372967918665641509914712580770549674510932299489971306197498004356858089807796548863316625752847877487160772428848300788913652499091527597131083457370445513908045964860608889504282945182535818367092767848211322830591781271913868401798169353315661867476863772184615914319259668620468051734977582422977702201835451907730431898981832150779169038242742295168201093007405825941210570913357993420766103609314968158635198174432481524164883306543663012556838627094693167103474129434763632283411016466524010268301817022601406873834267336163112368739824214561986713531086315744428682364432252845546438857288857772749158796663299862671281027388265695290603471817260508418197794908176439936886826407842486210909423742189457123184134174354926355819714098335121507180385100835591251916000876726160183870488646234416990238650585586899768882082467565368341014806379157478457225229180246960221158819679593816682925127793962445375790371041742122456281776879312262493438453353758010158688969156060893575410182267945353663073406927382968502491754902152008540449766409200706400388171577413754627490631923969486292813152606020651857798653496970264078794342235165430698149851488035461922119026618918008373869470005458761060624266302786835362781425938574844400248154622422189538047563684841748621876245774432886750446613868367344017331566686086067888784719811128375584532211757340511536856304354707145953178551553238805143557430988486075954688031270167576097646353462007142591904697016513363145221037599004176578064577196686977607473276497528219953799617225028850838014933441069215368292383926166581921358077999164505205180646783341434818615200398668823569532788226810674328366457152326608073555969250988603725275339808502547155693845486521452921620289571519545497363475389075435130034097768599985002052523092838893282198022778823733253550103820493769765803827966792071518562763421585321110584509069907792942731344820098543302567314015823633718765735220455092716126413698538113224753787960944877768023747676398331261058308436739998001565275032267026430749394947754803190615221322624787700870252993341329066323847381899449185900519148869605408889608360459839529147823391051711203687020595772301921358507828146039199672849241208231297740555636345426039887834196643183635377928495788863428399412322027620329105284030017090899035981363019017748805951836385107718781628042410513400260425357046562662766131947370705715275836011091966368024210649038394516635004470659021982068469670717995130753872614434739353927506672235120508048385430081451593883184465066395039202219649056166707244568239919600897599987210608625750042785861269507007603325979465233981508028318407004099940493503201324645582624470525385237038119280853644852512888493802654779321371412457684106026856216892688992215037991709117408184906534496066741958676453738814086628412870014542200382810379434545327252982419189766452671057242301737415785459448303457124551634743851223848050700093273694652754113056217221164939328810750520669063749630976886383023108256138006900218691531404606911619327497911456185766105327532150580407192079775030478166092046560311924317300566278440920947467651497024646836768229206254863078841576698617642763684296520753912568580777110510361191467816777697069269836331454119617864346901994776257566442924544533815323118802344388883456055489172278438275387430296961499621612249655081707096226964878573598855319988289170726035818460161928148986590497030534016071474281409152099774753040355562716183155316974736464284704931131623660540623494373428490824717927909081275574140784740854174682133712907196196266892085224750786712532709533481528056334296700550744514190641047342998447810468295608345955988729211239006019343807571138782161283691664464926308459953300915167976256219834794043345154444848097026591187440516804018418819446192644298594706931135612676983650160755165128757561307471349219418555065163665209182611882903621866000664025158196570514163443233589115313200679974832660051679675100976659357566511384729029907484101280195840009807422921949000642005265145080802431657649261101327150545498067048931748184192940293130650791009963101134450682600981955742639974643777754358124737151257297342417079767467008750844670502329426293023908190792752005267624715412059916424057465849411858970295708707630719142935656671815395673158441538678984990554455262512546428701144359637112485370278056343032232960326991567589008448235186736591048233086468521529496193273963485183062445826215598819657452042004054758859706525846424297889953536022359815523551467059568442385702182286972128539923479829464871372337633429641737692950376110382526311367736959255841773755543954366997858119693229947779269175872518664051414005177312547874195001348131387085146949440955581039792562663855075602672189221906882326548875808553470070767922924301019517390088560985885910644506506149977498252725705299693002732371241106631024978639068981686494440856221732680313430801974894729211304913309543371949659225144958539498345495877583455968444056054792911676295220521467166931134150760983760767167728858979023036177953448672903986182801548782833190288777651735025759150579892056720631934678646542011389280302607960662711899874102248108737058527090639636532414996686393315795471028033438975265526741555421196393727863995156296824378856452897720157934801206772353347021220542483523821742779388688932011874383388859669888315566946305123367193792430047522266518754693641960977472081041341723791428051326337564920797709457077345409080790186035025992665497941782064172885814377766917003613731432644735997836131248388854316123942706854275317797002151569138635218693066414414823775001126766327964879284041077467144171168282161379214704898515840343694350270890253167504509648698580062643633390524983328117214398595227919423726243420969584916421311799644169756396070273416510478261387125694760232382461341332044285022283172702789543982209921421924936716706850300784743807530792498668563582109851774776685242779974462145887955853727652683517507402602455768959473577636220070406214522495382130461095843451610240905233522496376791379857021273805361557202179731652614615927228242201796600101444808840961555096424006146628423171101138629828626672448816304890890882822390694529451142138113180039510681378019665192835390242009182348769385628388768125669012284372161893512383778747840881559874508859727461743533840847625986475786958239548021545410143695686692721227203169685032526063936909365025551041165190867555465266196432083868099379776922085379191986845076842312849450417593077313841896054306042422579329403768543142910699804692373041736459661933260081060552373086025405905334358877407822486657577519570049108895140155958711188022123313140771720269805132976259636053440727063663185797796192143791174379109897068477799747342292737852523879380552988899837136761741253384301054192960901884411268844461743353020258980704003495755583897496177408855312476321193110126283118405240771688901102006810521207400688158153827947058338615657085090304661283611646922014730527506790632065603726449185041974938747494033298505635673981161336011516079925654189548520896505239413613543667642341298289695605941403882643376376964946143545563919116062367379802853096765465645983913468610674146114212739099282445506782466389744390961902632691803603740360678842973740137253934762506357806101227176731987717916105981133978936785188289545746798041460498822352966027430591508154141396122827359996617905096141486758354630778230320675736241995649881178134476023086371384830723399192664177839708245283194751353663138046013925723222317465670287926256142980212552659291241197311503642173368448873390739724467433636238253842418940246487746680285801621172084108949845827982635827103532656121194611813286063601194569893981812818342648630042764571073896767553668631902072995372332700136154883774203882291655167649501132516220282534218886030828643550239954051031236665445785186249186396064702792058738987888079208943516500022049830662982008930478131087261958959599169241275238467890180648953280809093317090551098324942405156515938287274907271105095199876033704564892559095995995664008815785963844102903863507138354603729788000533550670103436057833814200916239153551828593803852049660856655905161389292773076147215273371528072285540920073673955192815579647406613265611943308563175172765933416906292883121782172989241053491956267167281008576241125850535276043229493037394652008225344609770439708391509176466089360106035102181991691320813615510226661406738211051038621097375294260435506825662523815292241177582323894907703811105198898436167880241558560620232962411492632260097782938940196846019574137379278578671264376051930798801995507142549832590604262008210704493340678944680103142749680658514472912703462761210625461613950654241876503574237330349046159820786745944646143502655395427492993211504475367679528022241167654762443462279726232622185144451129805739360285630530578922494616390888057222303058937980865172969889712536171157637588117898731044972913223108811953197487665903877907036114186730203728288013828619147589867761856523047808353230215575947097598172601493002319427319911404488926231222815612807795205995030728185719290620246115226136449320277338909409615301800296015567672411549241204572243713607841088273276481601301674768170834308851712586332062996586229448536614951908964456678099082492968196360978746080890249902631590444444796185446189631873868960122936908587171445853433384751182309296211616917157786083688971389648858133818192074530075422652284820389740113603524711552795204064966492166830005259806396362014462780661376401843383256200759913938814187938771954617297577508760220704977497823046839800765943683663916593805098411014135588558346545489330952726011459571715917125211064372646064174777901128319741851101499192149957115003519801860603441842552263143298274621444050731984050730770688775891411931319459533677015356069842969420285950476105786185636523019012990219383941254895604067847283917155066023351725917499313578346921110259145203962986707081946595328017979272181457120173650379072918817178924867801884438338325947311748216808047235971654721839278519647229037824871574408809151704355694965799040181339968245547682630108375917828008269459150439214402706364676172435610883806104075892024672955083649888627120746985008502790147422724822709188515270619236605805283261623278132023419233500996300407335158097240425099238164846782690724454414416579318024443247234944637604967615872453269636529162713539449951840368386222671142924490433452261424071624400559537090648299115488632442476994276934173449014489462369868755620035654485816485966784055607524458422840413693079575118207063429587843659952384053371727521674790851529322506698033513546990388707622025891355322298985457705692655410028122470293110518532088259517162304549880131591274397282429885439145288435517102234138455468823427045789576245117179376571802286027728497858370853529100678465746245589029260568672896506977999996661081546911240559165556839834664909479176994825648894671284592669732630932320719506552961094248498468692013196841676763890429283591911389027750787460536270100343763174099108229141552281776525772711644762200773211655015590043312133172076422960218808457155841648390134485613016835060937486757600298926904522759587622665501312710955329956551908228256107941016440856374113591796879447247291463937102944425902395788485316875639120608036601883998600940527553640107477164603982826058244635021666848266485023148652609305324816096362113179032800549531790171067678593834951458436828017039433706384994166084702119354692003680636663670738717840256033541888368869532186383005605754721833442745569538530466412662413342110817389953482404228432211874497767675133574297402933628409423243117953435269047922880475139037561004294806027805150040816813483555661827254472473613960349477836902688578528881335163667161842012299183157446429259646905296268946806214199137364861510038752405954562203277577514436441374202238043288570583446552356390630612245380721403301110861762127631106756624198368775658812209750405221515289768128587862910541377798009921690301297870581243328192208620765411126026304360300604347115905550132370485917977034879362753547447510888834917049414633270355520670704544598116143583221685864005429649178770343416796970003616201593877360479597676612763704047044766766877268989295930648769759248851553014009754489349253875813399093469664223031729025654827430342512985890950784498316280679459790066228845702640578114706491297270983069616768790218934170814053814861723651004613228798132733539213674473942036876301267183241083627000439537771787829040036120355429274874383355796614247495338460275193275776482378280462392355692224720969978228500400980808205416992987827033165723417569838849887686253360209661264581065600513665150961984202979577182755040091048655669254336024290534841064379292731368185994787164189797690368739593359412374735444553480710527059606740578074729336796223662659793901116060371546624566358795825862803883583359037939448588262642656891835412696178823941120046266773228392066761610472311192215400938693235486634819684400585424510544481135050058854857736747822070585936380152297131523732955849347643341706912133999708122122544063278394747955489909580624187598631904826831321938008814611844926981903941443585466638748953622679388434193458143581093872251172008389732006576023785194669505853255978605967043335639110722048831889789148195436370657417950997664224151988151667250851923085781045403429924388517006335032385431996452530855158376257392594715741055314340123312608204894521832269092826144222966652524097923785597954775068420552474137461608265456245173639897535011131879075677127956609334585709812650667336408734776006215981658765026245428463040663951263651075990374996500603204218025053452518241365626471673450640381981826402257837877981892154599434184065018171166959545618009351549509637775950474161230202002395025573078261670006625922417118862755399624377776450635816333425833779714627097713360950838946678704167688345295321206569642175055850838160019919999315178572715487914094869922220278695272057029179713521480572413399575080775381779595143906147473470660064733378390517941736619463686953990601644749153123221303148328765246221970967888542392749335986048266737302146392211797265492941036193217397871285261737334122336239063085222408144869863155704888257469438226077239911293064299697269506860944252940628813913311656014681218180813742316606108828043142639610581875575417246790553513309919163982653392429680842098828526933021126390652493360021979642969347070065688125523233596888347809440039458086642489982727911139998317408030161759772150233426051346142804388486083182950980843068843403144419136405574448318857689707283279122425626592213964534342758272884718819519018232796101367288115892527122769935921560694972368151850376346021177150818150166942579805525293236462909831770471205890951739856240621269713766084254670282313092273082473277577567054120936073869069645224380801104982751413091891514695598461747928567337455177388578970392448895057206465567278008781036160577873059917099620184197868066260055791672820008441426696606966896125468743252309975160329494380594011962476052704341818152047128545645414599730939604838706642127157278921530681892180987090714238078566398973516262757035181412258195779580705068296472828658988926958674813547267443397044567460241593302666292436393760012547973153372393131678117438490565591796318217556500705175621693599613597696621405340655750980916515257753488445567841677354158769033172207097791413008473155537851945268213792837800129508078710480417822212252489878930423293418770208066534408345338153511346282720320519492882224766506899861247173700339511841516878727649488705120679569236283791258835279921776385480106555475372992245732979033167867456163996131376982512734437356343347642405250953011653339482772108679354248282321030392099670868501403986571328039410461318822654984439151122074937113001951605477408468471503746098106088067069336505974147201512643752329732312882660717743870282000367329535364130792847124858001759604401367753275193513409237400129179785483326038762410845564952713249599444563090308289120727325855256483774500027109290861532098180677675843890574745059145360007452412596934788028338851037130460467642565094952762774604913583655894495822045633413957639355333244325744477828144793482070374260897813984813274010558338091016600030446039305371598290863468361972144091492451086662868986321204321471904556420720932347729564937571731806906533968994821390935283477619408024994649209294326491351916939641309219349356380907074861198882723405721510571106906857473949455438046122895634836664761881693619969875677694514544516184017523388491632503555325345824841321562931519588598752253288746780072700256480844318631091993705426866841367370109933225047767937100444108468598477768398062674273288519348295701364189760070663183270712517705232735263000455763531174365059101039468206543717563893716032134249708120273000390895165175869780330497263665654799990758869238633700453811555896798437469676080018099290759833805354857237419729942986869469449109359523117417404393428923154208792316357391167318307101349952979642814986701613537732101779652505264790886174144691580555502019538730590579209820129006934908804642272784624833656800816690818146168284025208557413077806593941040664416312161623145198549410017815832810934713923435016006081329762794020012135722629644695364713967913058932648118259338653294620901375210315732287400580668065724598662955798231678256584012690332365136766073470858359477195572474090443138279575938098015486962215878681395221428023602343777431934881390622343681944483278523528707232986491209720473607011423254957777374236323729107891806643705994849374912491805482939447179096863783245786181465932689587263731032112456762329255182963909797471308403512839285551877051287649800546097150163980792661945254644405091290443110501191616854775176091732685169847732659076836351711902045177022709939685274858504476539414752981876191897109539967465445711669069453568640875744383019869613036073103511730003348549905991475031100360475277502104193195829676429403031585691399993085682192026903697395977010647388998909519994758965811746220313245447232804651458127402867495763336367768602448479516582521990035117376123947739162112070768763092342649305742103835569456489304098399201934102618225632681713521130136432649449980487981261451413110594547773145993047485146984585547102847799807477526624642021685423512801099160822593413172990746960354570471413865625626348518164188806062549797634724345715329092673661092211374732996729954735640768442427603666855597946522101893269673539841432083527378465794147019322051650456682160288499094618695631807931116996747358647562399644253067804558592615191938849985560778311002791892055088686637966053373601222489523305473996065300794334147770110954458024440888672244777963250044382542983174532330877605705782193126640960878789282750982859757228844065795834892220909907467673703015260016260928023930452202526660724419188839664885212072596451660693882531769655116047157922379574358987994213556907448757674120708788206039350692868594019915790236526454188968850467956480953686122134639446243079912166938743549156687394970520490859239755545633539591903598843679885049371766282017391957605545017560097005432387118018688838416304685746598561420858710380022752681598631070788551875750379426936138110119467552405299903227182366168579239313668702383193779340691379034570357902092450205489532536438587642279121399460916088163658015957851865567335756606352138680670904201420812554718573015796519148591062381103331058213392584997630913595564830974002127229750013124250289680588174973653953373635067552587779678976016957759871766871291703570435452019117405749020615422663737578129082108161684975097531073662982853962484478439016459380560208147415866086569141224854246510334755482283868129942520316129976778478247693129692213660785108171619280707005473492598366389450834688542963885722897126605492591170620516909466023557476947942074519200357813900992946058371911186713574121924869774341896810941813359918603000792979920215264222525963208799668320589268030626379054359537224456541926330285926638849623459564518032820062479903041007154488553382170364670907537949998484924936887814637467802547375189359392762807086870580398195029442377518204138533728446680300962671703258877443468323220498372237340700428360983360635310942347967951770271022679639698241699330752444006045747757247711953213326118802437649043772939951041453432466241097932166630517007679621807849805691019109527985239603250844683035478802536681704089530399660414553277064886084202118001348283309370653993090578063755438852695598607568063042362938982321219253783557225152875030039587069713461613148797081941506012955407032893281149056240887356196366176066595632431296468671800467643667025289283480217433580886200133771440635416959176578932959976746127368559305433318694358496939498372130134682142395726289714834944122491130079661305663439370112637540313776574737943654814578854114334910396545338024064358227696812934157923646861361378147963465176491614682891103593773967070063720718912027651529050673332816622760142131143534300797353993276960542181554805873969016380994967885012079173655300274890472152978073825925998252144867369581836996532608083697052824174206483888015480366082647403573527038388367180437499173025855625648427766752973250471976399866657666501027295088973888650979908033035484398948603489631748837747180377787409194625213497804757797852901903512144600857786420644327711161373231393869289865477354402962968893653558137441964870793056094579406057540395603835143771649308926269301317839473619078007979010182372316951339490878509204639605341786719274471451379386954904384812173698376620912047554565027420084302524237290456238612337493488812423426754560437078476664367215471045700599061032290033348741448906880857057566879593501906575352365994285463607873351555884596998631370065151999919558948351721782443462491193613848880701233243708023626932463856705033844373112991326127664060889094970040344618945650566862347168597795215625005377391944134349231641378717598240396005726997575598321298069737969139283740342248445054942325276277795945808629775465748376094681053531710818044042229691657299736485683481459812118593641359557568481330157467444799433819939846563619753610491402018864988361003998245773692351764957647939284426313815950308937622346851532919733905383499736380481165269793635919673852241210318101929509846257174253343972416800972835429998770592359597549722372482174776725482537174067401804966943065683631250620686234777474812143629519954557393049587165327200301880927603457930996295680535683811168879277098432410845257127995771299983222929411798976561172614929274812309125609029851759236525582596278723818520432088589341535774156817486256851480698086273198818668536299388594368360453509466561626254360267758415364287759566328607842242163133526902287316823583065439397053654607274698904403820744642470474963407789048790048882516554582088992748340786092380493269513412136217176583453493739510145658447958327372684295902531400840334531040302095551534690376745486587487987944895078868625503022005728680885196708585936605432434469803599586418952217967602801632158107580173898026890747433511819610524822947580624740302762538526844625156204381578333294997460516707016191450658308979258871327666530701190603408499598114338275414260914673783772678504996277407151084865946142758583312902737822630038921422288186881510809325589298382271191593205916994732857388555647535197361234176522826749574433977977781819074774361275307752085456770459549812604422924848263359133671662561037163667273317194037730925807186888097651811547331020138034265616558375340772364490309718357531249453791200855125662768742650828115572253024492365385717631992446459475805278516342092920893462338835309527150274917196365291897159170891595283411759412889309946227602457691100626262196435715364336955029655986042181058814510991403675706340936565057143812602643027667161247535504060695719890614607142719787287690411153000172397659208330304559269392487655756650714388528331208423952972913240915769130286683909624555160161122617734584039525897081282644014051158948509277447545411427232952530715086067325985061434670453840133660583678694986203149106264046373945370757117329842165674356789376312828437159561901677237036880658381574515943431428566285875505183381132233330592794099172369058696186654075223736215025756014754196432796294390805305636665501717831127800344309596052079172753283432565122241130003055144230120339530316462909958631985739739215778013947919107596745090111442143578596567597888198556004354510401464789368127607556280255584805199337253141031750010168205145223075933826609755251518724669289099441773684976995815220581983641240684341496740426418077364232127291887561701626580877456338497950363597320925075515784845657397822432074459369418690339449967995739489833980296609365089781645269322761199777493329100424864106974018526947711417546335747119718374500622059395538486846158860561851195177866814583829526743821507186900430044198136169582483587310780761516223583649275359143193050644939939434758836015662916292825327027285527644669429310777993970387764131295100521500106303250021881638721676701760450721467274927301000086139801043238431124196045351182436896066415605582798771696985427626032858158968367967319223197673611674706213287317622387106981848078744327691427430302065777220062858044983015908348719817280481389275152608785204851070382000186403713992455685622387335028671317458033629906671194404739661758294747744322870359775508684527779347841155401061341400063917376237103541214516703923777376627377671423540279132567055269270219720447119022843037712507584130567667672801548697193629930189139557995096538145662582889857253058623117109676601014094683316024282379894279171183111317818465839008612811154421231199823197273534489914769480154827533946613186541731953978492263126606259429379645120449118717873011818412404268425781053590873094762912914865960671527972797462331892579834964252230604057974535870932005725748074289931063966762587958877797983979506647665500335607103977359953272326019357971011422032836298571150491054727632857708317782306955708156029066993479763402641185788492841276220727787914389015580505234731124913011485419945088206986222613855123642027703528820840989469344014642042661748489984195384486912458583330370731301179277000271168498880276638631821868209686518399243232022633265570719530899439363358554181364658283959913690486822028012186255416763856430176369934920091465915287217641553997835280457824486021713345801605412764808845456645207900966985387545733081744964564978453024355234636678382757195774102945727428978754337217624033804870170917308872685229950523386851830206994797432851137271277888435796467885243171174144292412291377284009160790670796358679576680077723984743900330882168688718793259984485551250652907224558562835798196169379318005630475294986051069551359709923588330042805898203163424408170541859506583184976139663085181100173720616697026863739496123848883669862827758501097755733279256600377671283327902735783130580156668427683159490466756589672393894782137761427019268617408048477070081785611327804826531156944923760622170539456146841554783006257199116606541581399570324373528363846791320107754686669649283884002312054104353542225466714226333472722063471151782499133117029648501905958720778493266127240304288584758615912007673077543101808229976331052383216194339565009666401717301729906801122873953040533255298042240354388912699255015161398942385153250536860269661166799241373667869236388433420383127960586665098898558076292674540012884729835715376765551760462657906350721182415901922525255396721353852533652930220313117018541519213282798123925898379305070830376988552844808275896971011892273766480049025797044818824635985542511712304104469554432380203230337358790635197476192414515123441048136584821310022280313877830455586011030774061781860329720224047785035971993831684695591269571166545861469894927115592045988697046881221251107472014087762764835279244397189364941157483993462690235546687096419802229602349962522530403866268672130805050989422500052857417353077896701602675211634151893563194328803126208168602303971693098589546512015209314052836727320216405177915431950075934757422988311175689065072740136535491051673885479654827536576846476858929681979173992830359785471189574277113697859544343761874053733325082312309281763454589316635579153301192970249177800268540224803926499558007528669915180963158938013162743358284923995913246242503122705157477452430054191629618601463959591650007047440201992937736479134680163200587684470692721757815609236416528255608170524360271919815742028446757622378420003995821040391119330660012884664125714225650317595379677562970333235728004461421357673013947888413244965802045162608717496595961739866682914779593078858875257350513145818185340257482146522646405251074795278880638265365365182332089741314422112513329937052969200979946565951248119850378720783423641063793394899670506381249251986067281076493624855775303857754745582195297231317090214746755296801710976658458211840951449606570278292508045937667274166495753596113878549757185159024503785746859633649148136664635707547224851241652773242091902453198436870558386319181189713718512170240521299091648773956778532764999833076275571827840222975007891906646707591872719320418124863952579677623950066157056289633901937431165870433023109172252147908800567840670073602650321130000543161633128943072450879826594155600444473463552387033505100776797055532503551315634254637447590113478041030856027421333458738714796305448834111094245819745492758349418022172980880203203276679272857423520890733056433693591564202468414139923671493697112110582344805638844295933835571327789215867374783773898733133338193864309730188805048630908021371293608340292513497092223268701548224274811188665452028826365168990957840725249645017459524736746783254863583645503264130535180367121505811398240100407436568930289982185930828126691315714817763295877426503675957155007496762040307590126290038512212511180862518888894293285410089537234165003099310368511822942171261983676481850404716321711936627294613653976735764654421456428583836256230876264000568539926132073572518729707069904328622116689959399506161851783604363736979524633150100939317464735520538575474905660992589016774193147029882921191889667438265688890257981276500779944465167005331758943672074126197111827396294770465552330291264695805088583108061061565815449293097088865272346692516840055272668320486913554232138069909363084745411588151250631036944084207434818038929737757192035028336584274896792047320016837213768319252241824704791114005493528350588907164191103508714543265404922732954803031731184941844435549722791068308564168298124426055162639309504244628235985848784299716423330102699677482450154702659499362027678050484638958796177514444557481816229725377750042818402600970990848821698588633409819918556953940563855351456739688797705211359299038958951770992499872680884810378876223595686980304691868243601884413521910505770667027327745675434510991665297680220241530164541314185653628383794742186458257378382863559947040070888800684400863706766472207819036562127416973861047873045365111173610176357055148724873830784766559240901314184198169390949676305147264702568495763196091575935499438613242520076696218723279757296902167883607660306093655247766759385088428184377174613189869394611916205074807506069529218183931273171345740986487942625348085492561833779708901671555072307230199689105561398029865004100691396745806330297164131485013618108403526387584237403981683961447169004835362534645242179231146975071730059278007690593256047341243007594631474389615949920199396809711272757505352312561733532350174856401463619665124089549684367785013053283293896035895630390104733736518305822806793349000876593121288301720899551258347220187814398814663955393251712294960353165793270190539299256423251090490461464425274938727958025785765826686953484413745581383838562848866016642548229949131231513936829763170603682076678319284772033438634955183683336376343856595552476721618919867939458726204331449857178033035296170513843563070143219217987511361835221874348897404047130329470587306790149532253155898920630248250612632644507208027667609851588056857141066029783383982537723115631593437371307428425932200539116009306888877434726555018744050393707616265472658640739617318287066014926336605322466749918927830729503757563693173280926321416480954927337445544236652939463213251415310092573814791222241986708721322210832173457303305887579548806371473520733857811173249079040571418322337027094059518060627459603379002489819531223477932018434437445605439232731549985221029902823282995646709096168964158131527178449572119887197612271582984830352164365076149020355236415842730069034396627131932226032111991183844971896135305796239778838497297890857534066851330033471583137299494011758371398970573120570066651760740801491890907041785036120197776137971956719853245660327301048517519560818621229803215466692855763784061178269745648349573781732479940329820359354440336110039157580544381687103881667989981427096711563480657467879979102024258067857852259158324986974428677366218305130205965737017632053603547969651223685593544129516322972383383883408727441008482577958098983654762959661775126606328826461821206502942819695469742240287368345790443175031021351280902443341028804526127825898627861451449148201668319907897866473124748377752758722402364650118572723244951130292503317494859224752817018798569572839707371608848478199383415733129845984283964305563930168611725125822258984889811856393487538418287286224565305831763963848401711885768176790976546349858998368192824544548556262055554193875819397719432762377975223722451066644184834984888456837495240704509160673905509475588586405729286369571540800045289534380037491848945919979976150319614689570770682846942555865758046838183095186941428939311568039708266249381779559516877981426829449774017561408476874227110306138938135237921662333255338771936256566046824884484605759010078131469184568444444494725037960740215185299673437549789586022764133883790149922609482635400689949440268969582936830965966122639655706207179262448032784308881867165951191544535106309388228324018876669064885351680488219261612829284654061889596683157122659601239499708006877799790446636340784157265713771951318996638102162093323509879693361677975128125452509089961377358377761838105203121113564841877420184673441665753644776803404792752186061407645901759459646380604089856380180189552680717401513673351705815740143485600911346057742376854564109692640744001001293388118036244601978416596294341440530743750770547276077239066903589426582483871328443069720876558013914396438832992861485733730218717079691205107823335084323572463137967273178648453897789043898390955874102576601526172060070785819177380079970364480966556143530581318478817499047092871000394630393172073882951860548642321230746370629283615919164518488791150866938737966513710164279196426410250841182092697392354963737097940247604828831176430895577677916904992457281890805326002511793598141307801731400336199324283325506196542732645734545016443349030242435659875349999961601571577659041735730236612025686246379998575586365042042845995552354449572059008275769087997482616544469946521922125462551829650881515373814400372175593445957409105688315456077149243596379052338623032499328013155367699745236897644259980038960242736250967921609007231882374238474071017383959746454214676904436896131314311324026691211535328551976704559582368082997171165624298193461039822046147789127265130514278955111975200959095417041976272659189149939707536570004354791344858548285033905367564508254857784300639796605039687479613509499372234262472357875971894671929711957316977969720994973470958547251836667032276279293573541824782757599209112958510553789900052405898412006178946247615793446682801969836985205479554356944831783196103878762204688578374969026736352694133516685191112686498193984883708973489279253315977115879399641265575103198817846807564926941302583877714318640884128356769720854076496158241710242779287892564700749989759176720576320468988547304694655449617865623151304058005239128544464190655435441905403876069314595006662301564472482731326768082312560869333096504720501850561168353317635569284450491248010456830620077328376971425141896774370231017512919761352810042419284744651648795778166066283571348995577252896562040350257246733268185627416829502619834062585444928878177674117825339884395913592222881848959243826575430389654481546784979040893448582383207627229835504681007656513702469784168261837163979938001867973821299402690245022436822695500001782975387667118007845878615131850640575497955935312297977509588789155682666946200175642539565267448513747604875162916010641062355244182478658337837454504947865034158796846912544146045161675887968240113389109906223663684549201129529122551973246187728120384932493668942049452801829871061741436732328123230479274655559008616441803903169041729328167720471266432211218428892216728119611160651243420370179981964355944730620546957870666712892114759815016995406011088111104117436783580522918963002869274130447183985481274541189547235471082934456539578585555675158895698944791600794753117831984359018249593489847906984891627997117313940337818986923670780032106136088738573318725536989186877185384628165235967109920187412346414889261456671339522259178333313601022262792786342822057222970355042312723121088129691423190041763145363670680263680473505258215022180795369655758555432963990544469951686278541442104717833038348558626515700396886537612255367464620646745655854029003392712469350331203718436998850483146248469924150209735436760852580177733788772751685439298757359164961437476293803697870544897336351810368005331763939279755066430711181065242011912978750463246144174979766910985071872397063741593615098848735405015748671943122729492236436814166492026820834960473107588092146337535667012167453048093506277074277052169649319267712110570286024471300633385414202384351020468923212742726002812100134105515342546035980858309639567406854658270855700832133468318985740007112343672181180034077560892436148743384097847165866921965292444538517303027467997769156565911018566197174381360980880499864561078012388767579140153391238841216570611198065604083113604885223925663980429578491635236998755262571396031223165690155538953155560864097461434009629736491829794329740934366214183628946957064076130349270037563662124172276683000729478772254146858724619169276046735273473719745128847766001338089757574495203354359115418407444073632682539380307900229049804897367559698969322448072940290162167951943001804578238262618745412845341552677374883101913196490230586166651256633535463386492662422077885252580766946976894455776612509983781124340093159858238361828353087388647778052373100779307503844849003043570771625037330225468621216024578329895674875247392434985893429185890169539095746021949896022914756984156294805087006083156340046588650190491453774318513252272620909653607412423852607687361479927324308306973157347380248607833571929206972366201606082666572940385897157501195611916241311015697978148080877885059085155433683668636663885328162451052788662921196426573320118099923003866928017893059563092015124345535880993225801210897517283532379169631723483495050405543570590883719772882731999599881636339580383041710176862580086593362936968757769656022299023257443865235212542408876016103672297109603159155819990025100352089896376023879554567824594656711015232428219077388727957337561580380305297844996222938368645417248792902858702065029980385346043828980352443433776270858904526220657038911143995179485885271977560761405628516607069485316532003981859629305158817556488733772846536864831371684363492574452239534537377734286661392605279847035374053739809706506173779511722982660167347486559666654064495763267103076703651018366780899540464548926374568336345783940235845117618661253703231765746665208546814004412649583429906459421870027640067127845740750187502271734925116773657766750101168474583407046682664386816365477135676511905888385608359496772195949145763068389541528551155305075471866757324380314247182084125374985808083299962127523117311692609780024191083574226072873231008921388766849083561855093374240149808368285008420019997326017382870274037230146081574837668394666896900480296782945382546528259825673798370435713383329377789858899600354312338307570117353023559512113925242629927735934757490826549400356313727514662316791838288518388272016709836270658686585077831380483098153894864066052869145531710619726168000711354304817447836918793405421221881509755342079192618484190630416518648132394408897321828545527625457684597010348267587844860748231610152557927909826364083345321219101436108912974511224822438156438897162271470238601124829036650402564662040492389452624068867149680324832554236746412114161089555957820875161831118541805100255989060831265873341695026391359493368516089270754255900811807921581050007069723207079549719221739614634815448809119668959982046756550687511239807071897585085813458826435881216551737423514325298074237094219898037560487517601797076748138362958147249373354912692867725244336960844601062334917348581917612565614019476445358722701364078475841623971889143623479122233124260493763029223998363090945710844636947977688473823120967052758701622166841262528563698902416014708050878278131729841046857784152150151555025748709631133252195290573295761531508838027314534353810215062523236306084159473030476031609950719049599808556184492571457907296718345908444226600310593102686046141785163825616129325316652542050769595166348979816966544490836701972348011223323532789033121900606578814188822644227773090883280650097127139825724269287970801909222104807674035468920133596827183531775180837659184501385859580254605527778316103508076485160693186460201334682245110611469003440057937185605175240604583419216854791126096305681473843169492761449369721947521453989518020927399692946580458573796918688346254199356986910997450191819630140754885508606125435797414066318983500824069949945070620475039407747318191146274333846131669426856425710431390300605733836845074535385854375877369735729155781652015681062198974226366604218107715307937280808627541355777452537941813665567182376400126440725260506431880987521035863841153647724032190111517504433868852460932925605682699310426407548877730551806677207213280304721789782962936851848260795299101230272165722732055135512295890025882410592820458247476616698794824972951725271874121487986313114658870383961251540040479829086270147635827527439682200994425499007691769943046304762689182477823741512808810425734874217640397169959447053708407577304557127535835177625097366146576272788602061282055056592957092758338515644484565169792549558849055114374764377383216039562102027735116619188739372221002578359283983877384150226528804375017525322777312109045714642833611318898816587529832721490249346509066467519004190868090320246825311873684909536178947263386775298384037909557808308052915747057804832287090758541584375564317006662121687175052721528925251961164477137166122831674017282305383453858767109108842645570793675350703839785968152597105423090368665162256727120267071137982851249864168068452462507079680617407293380695720972393744523206867763598691249813464602638858083538733765912812407078940454576037882808240311496082026852087201692416975900407543698702991532278605604251976471629462743916860294540585238998557141552193169851686025084483369984173566334082821145138874787996603115883318383042795304984748554556056902728051489563876125218178556368549803114093522827939074403116849270033710804866630467680795272932033299461435047501256681040028726858067177360176278483517805179040080976100163096358083398332941031080782974574944028116324141735095382810308765474660230547093294383463795230190177332702681915811326231045876625448755839975161445697069507473607034676198990985460490461272715760020330908621761057430943192926300533082579097001816406133490774739786440647997705088959287286762003817124554246909737065403892068335658024945887916733971869787860890228443190215055930483269918657552953157877418709612013875769954267980109399667519491111058007435601935778336760010228800739586267944233618840767687776948120537853188843804744677981503776606495509893206224207241135984148071266377420133958388706288524689357943745305654606972511536792356392239929428612788744570504281710847017863098117871096226768220749114912299606718349148373701985681159867814909532680768097353391896009516138161634532951123661039050813254487226435400816295645522588729980408704657651397626366676261321635900106233643993707272744601466826216313178864883275207968183708916104151288282484604564618157033316368800556548652095207181353486200123060786269996067317964739065655447706693020657965242129650611415652439763990278851905092466643229607911750024742808994136823041219627055191832626396929078468327817076473434594003836517458690578179298880684650621771859411217752498709386455879822639562289484924807998317689702691346690655588670156679452478534131753870408700950514259135072520245806699626620961767544903016632842307624219094019347955790420756711607864578628270910383047100089545548413262603589814673831000532621012834998292246485297634204169024866517921896390258212341304417170715310508199251450542080907291012294765540000374157904054597087193332844525090146003369520330808261658473372301709871364377339828760817954874245494930026452683867496055198598024519106037116257530840821207041505542982852392189368468075736473531722216903580136315054401007186352512333240657024699763701427171534313933333684631643429550762967935419858767223079868685632415663641810841190234030694400039178792464513937508132953322331187577226976972727098434525374694208170927515480438980457089105521501365240936354201273826726790067122080301232870722784979140455048440767572803689769385256733729991211355828766245977293542152856362874297039174936777749873946601974008908707604189382949203014060592395207194440022255184702758898459289761119101634065617924308731681436430235261202307325231755994979647583613723909204219673193592737811842349276389723403932937227778920866089184585913849359344123430220377817091487184540694535122977703211020623793630326516943484500349793217119700810825962401778005921998580865292886693445997990991370427566311248449033898297832969417947291635034773470332726981629900035317454819937116342378389067544515677305210229409250767024861733600662331059030809423482341815134447241491991169558516852813787225181984317161931966250943941971444259503615810630738058197851256359665829619839715299417024448558053315667608648138268360586831742500969600660753014168768667852631122098248664660971690971782581408136392610375102633844700170178725268206824887822800709492111318774818835960021899194805517400000580583801294165337772691641513706082231561200269087014960312439347882511011048723125943450377634985965188259922357398038789957112055749482964466874731932747517217807282145260712578135620185068843433579364071236338968054735743158117081899740132268637324623480695124239133502412130844112125843423611696878569712391127089675483691333955958983293057162382515548691365754701450061126866868470633690561087506960298334942075188008127648399290167855711475906514468250299894546857725094921473450846317629253916943869711343593825461248571687921064685681390234923906613834641851571882781830102635738681435035400205761641229765563053998034469219546016292892465779367158197421368574034670701182272469281976106118318672250271627762379520544376919813375984999593470252863781342624282167831436089380400092449576340107297675399621524195281198950621035800412508144205648608298692100008801520480347897364444094536242246982481509808697283225594329301033033636918277943967409653043137926486111861719798545414890709923425104184893941245940180157550818695055333217205063034514841816562473060356597638016032256977890793082989954135065305031920476602487116039366714701325339982156008023055207092528459739899429924557356773679829191076364088136978320352462649292016353882919249796267867303432115113447097011070238188023956581882505939627225843523017146883430223415394443144528358426186591843954324202446570048590845468336541914265862517550298225918363783128258935525808437979411080278576392119451076673323989409737676224627826198020781189486407563988713895519879149283728878301460877645060072852163588801042544807262468843857118772743511194654461315697828216241321482383718416718144465949134426851004219973096915749430387756371826532997532815599328637581963118643345935364602975803575013908938470378011967411791880349247108980308401711761874832066286506902306612845001260113348131550074347760133245084358311787252259433939050344753451218858997874380967487373840038913732589169772807530554507818489952345207843645091462333646689028327015968402911527823420785850221215694210263207891247716152110409638454252244665156054752291790849991050616673031541291570763273958006146988707877629809583424389297079292245213832296811307008013861391821684411238229564747079413786800937272150472314385518307179289103685789057235636880651071540932338732627352342317621987002638182288688495127587258838676601245147092008718840842679916799722267909414858369505408755316675218834818944549736824707716833739889732006684987969440111962650314193821073091714953055699630847501946639942396764005861195635656590352973707523833695867233243608372494693394074737281488005897152728190695753465566722639708575605052186935805734923240528151108419600029955020899315764473028584988942777685600189753730161205856403813968011906116355429215428512196299542863611719239933233870293903414473185761011866847641537927333460381383255989478978132878214323577054354586116780360754831312972469968656385158840104390462535761532773781750002140103066751201433547354402447579769563004335049531550183950861891562176651140873158167905275279862168257849409610694181022922144731788803121805437207433745153980355431145592329535493200449116869222015466268502893465197200473456381562013132141034395252130957316198669629415345464153418013568615114093839839125351791953758894347499418568136945658440228936890869789710632058520758001944833080199052379194235045167215479108658688104749534796120764557488995674751924223087332287483546457109358306795994961892824428359009883557208863688007441359067786024666686244306651967010099881598347382440172219714553653586879746009851886330550661259765486577523778429152675112296586379367107491476075611950047455349627594473248196888209330505788269486616712219114446025727579691434143393529690032082433025609051124265904400853378857218064560174223402916621426945205632041579916574471743620286311743619202814486501518426060850701744257596894636188417792953786222713949649524051362133054258301368948125680666864774052377729688455697330877635621463502934824951317235109760810852957398418626861145733712241289412354343444046294227514907179755902280164810242924246303936327728879544892238149628996232283019576372425176184474400056131662142171292890211039746680941264998093230822185989744759144821440326839569844261263137634049822112744155950874032830078566743295617173096287240463013568715025608155590511407471364601115935150883250860024035705031209821504665688828777738339811765910813075552983847104607370498108607140697783321229733886903464109985559371402353796477634944604681515286394518675448067696879972858399821921441474324852657134985480005882580831300129847621736163558206016883283411940450867633008343068850273679042994795266209510443592084536683923336314432617109072987866619244260774496290157152186734429973344294521303135017920783415730557288137921486688693323408110575036203561756121704736673101035530288709358097971047300425832652634343076029148389139752507321833921463008925583167363509267484165406040941959399421670630501644038212420447429926608281967529660281823994302021972683503028458039851135004209432679039509089103890000724159779459514084486237419943192380039285623716252784729421590524237615143676436716355138438421679067817022126751906445410066425296971057000954457843691353559077060055392250028986947440313661453193190762291621367856357867477832705848431599745586822628441692665439059575271693315683171505741290040311099853196321442480146873236658815468320740223651543112229980646546145716259283277040889164208909665762823447731102686338141658886468067767355425046480948337245032788655922456143184627873237902667466724462534851612497075919734895907033410941139390234456189050561226976842190047223816621955084262473506181963561815723259365518457689874619276035909331472887773409015426805774472747628806254874749272807947029544991840422249938950643596062317374892525043851611262418356225526425685086252663565009358461339764742240220114357245411921304560631622428826646998969695160708207159434246463894657801643140237285899626682120148585058963155315656946369317849949169302310685526990095600455763799538502890574957085191614310418413637529845586330596672647017940945460784798478739918965604435267200389511229697143337500226937673594184201885630265366082911365011323662969911446008386368292245853676114066907689005386922572737181452036212779607931067641834665300158827248155616990793137580795974949415383728685482223576350261612775026292034521847165489273064327490901365584799685124587929581455209871805307208734739309484008168290229979515869374038123669176722337494782250915328859152523729836635301141858366902322315982127608754957627781487547394580567283527711682377846892482844594106294572844542347354745946915895466989747813653673599255094971641163246453974964298575104368793669955722965569911418350634123047796068709882711417229622580217534429325415784531264584054617620581939246938440116627151591751094847885912434008631691222554954785797881722170520196658820765910861739673640071073551921718076423909843497975385595801363272983688945128492615576301654686146300987493027898516391924726403464099286520397202571158238887092351537917667784898090572851824309528866588689848064812124990090198943378291664343031209320444649810227408469870388636976343422174234326756449199204280637434267160375491164767635185404794720554744919301387434393900820816469704279065091449783117910144620213072909492601033012399548865364609586050352637148466273327606015645778696026912901062512094909761541789206950725680785296786411885114461771923578834713215254820308343309743598039696065075614444349378786082234489444145337961017150524669488405547133842262395932376913251273180547728161852625288331385129681801679727853450215731564204381887852558246208968809926828282415332961930706299697635337045338671304060708138092571976099782048936303124043829023547229128894699372486538446986030707682609376467734708982998052952257777768520648887857996458003930988859040168806435122034905372816938448122112624795692024140618269434610445105264575063646192423328799254126384643547276471655496048194212916294825654834540849925200495057729333315445280991407666583067364491269753235020501125169397033619477623624507151780246030869144507906737655133720336734358225987958459687525912978005754265809204617178175942216109941375274624233219815229481152013859848276149821348436831222418105860762911958584133691881324932272202866928885542148546918211371331773053368231180327364561588415532360841949032885864962263221354561569602367221297205620873452914741984465525968367474468779850372847992253812870084714477545966071925851321164830050001269431772030924756967770081166744115145891629774409406177157539097900336580002835087409354372026558379244791534463682670488763675609124926054986020308426108163547596195891298669381417424112799526563827173786322754847390134189065923620873054212827114750113023036403660525330591794428873213914461370945016223334179451857536993776250086752620576773001354159177934198982441200189117264241671190435758280751726021568144541284864432228928462972459424656563033544541800167383643673813368756989793559340169203320923597436964330327055470861073234731447311375989595598604265686579400599779113969939588651405618418350367370869244040065666436933490975962618319504351780258678040091045359842086048483418913076806542427047270012775484351087589334951299977842911125443447564791737236624263942653217446209923397029407882240411517245824385462503290255912823040256241984444833973493891227891814722271827283940826659009271732432373603360750795038392848252819853510826951476114848566725314120302837400703470443494883805105427997460516602390606919794867114205008125800165639830204148954882495044758348354729506351649950422580263522732839247247523980357099659623014528301329565835345668790267559663998972032778206863673887790336223107765058474484903707091327721789554668570925436143676833349573013683738780549343119469860239279021838603025294444889569125468566964920028158123151766948781575797808042114820521473100821639263743310561319997911866080879525843489019173675955870096596333438529253971629437948911472258858986847558759902040437602965315364595134752389390680621769484765107199947029198521645070920706425803459126750255027092528774026432236347804576000821992643614609558562413842844971138610684757527420539131436178847657014432625377674828190046596809838360120224311337270494049996959748049981407683936463937825307538189158450074797314399844868957191634051939487680211741667419002635456381451861382157802266937981054633169138419113311891339434904564020773729116775014921992579177759510684797352332787776663185605535686627530661378064096896640794769541813153728742238427275563302121958312506156750322327239745256884623998224871878131673130424259118493300415855650792789643002136338014940345263080913522013040630052043895360018522912877451623967052080413606555939129681568202117704399733646019044622117380085683310538934448822020546354956139401187492633800630806836936161503749057172373734939811114005738638670395454938154410871091265405252111073241690420147282754686091477052549212602274478999242712485599939270713740297985457909396791222192220226721369938734868011746179857703271065118140105332287023434413295090900221507923369464659356647141578131947303576008103323011294008214663921017376539531633261043532816670863855390050041630708879830019038097902940475095043754102299202561423572109627554316164701132601525745560016045617922993365080369663982798226029090923716129469730221054722188687242600996927289413566089523525292842243171349682657909058104121900308307914984730331674494631368158335407686741262308306578361156047628875197809802781359597701126437231917485417574031774184842011287822700298723586813712628741493765892580034637040807297082102235273206282811555592262244634078045047248414648707600795229826804201217386330791567356544096481502084708541739659859637377785761057829756525739980234133209949157156145441596065185492477660206945897407015349454591690257213368935746868823775740212214816415210297983571147968143017372435931799209099403560768566809885617118254402167030909284946923710082219630540090383708489944871268088872328500502526150414118193892659837297011942744049779846759589096530872808679601106033615445993153105928745210300484248450746943483199859174777990618854352233614618416531716359797668714989392633815283775087754627700082781553392392619764112543068780325571736509724649941189359592654998512686879760903264048956359921510397100000147399229999677734738600135966751385831379912224688632901403334606574507118196437457971164368918285962153639473484698193195792796375273184889061352336822585764889771982572021387945903636764893486702198752018681807657394615166588893831372288502866700747252832134194666926930993254321465812298681042790424312989574102726623973141489119346009882647363819455130249962409559896393727482764880138795550875982766646550048156415703027893185677254846942490296832709615318707647788075709460878784260077201127022191749249582583905353519605232606775547904710410574772036023151284745238967184496355707568479403520564531781548542532401845321046713374249661090725676259558091875487578323548742403196503288996917407915203329060359474142840366036109390948951201840759424153702478613576846839676150490719726946887136386703394901818927151378030428664007958074533272589748858809700470208759665277562333093896062167709051286839502424772093761627278275543186063624506013651374518828239086178989986939549131490184742086220821849075762946925196914384662267374863062652293789482333963636675060490273789391584274051591934554682524616247345228031120278061158876938679556945377952251708496549938501937075857542091335606756078881443844476272242857021183067467474049935807848461803762360577348797165330196729693949363784822669297976483572161747860301636193226800426521431288954516982879875587014911664903562451885987217174650807066237318190417575961982616419318987118902683208071974860916584456866254098017633350454055066870194320152959616883497787596947752125991105714838423934111605155167638014886739127133576919960958792779749427055747045991231273774319810989502664334364999583782814195681232244879367520467957077477120009702914029225949825961504754519408641193095065500860140314237884018118422645450127294516546359970327317805121208749393853685188066609757494522952895517650841448898275982946221583519777218766872576101385146431404276467543689134975561020934052198455690866377623256304712870260879252637552226781282852736742670977832472809688889843741925493760752274654506194107618941001468160819567463320288554772098935846211680560946755761253212658442805468330848410889184559859249278510524734904557310309875921709326331436699293988347376176764706090528641446096750425220576770203989611098674876176432797922326917454268751141244908195067208621143689805353656595622264174440417473214368238541407593402887664806836581583265905070107341468299695954269084103872663963801364696963106869850646254364316833150859311206260567925650953762020556432658705457442187095730409606547954800494432043200071098119065652562600337778077803087907276824818548211147549799303864704592397728739748435879480228472717178939396748384180314166834711047516896446958867939802115833271681023656573922361516595650591712880828984187322924294298722805092200819218301079210092467768757254314927620730527680632768319505983466472508672468183069215673324131375277962384024766132221759226921071499429045810156411193415273420149502253478667334756089125346402479350565953814359551042028371388378789670810875586711674542099235367453158045065781726749576937713583899732552775208239546931697010349807889129862877793724207541576957334512868198922199831804813401126806293042898099157138919111632874386283280608852933636149421152922440315408874722339243611501653726790452282166667042324579270535085354812185898268153185472123238281161159087585374405952384599471410261343927795319506479013857332253818800775256170951889127484699233751303713091751454068607659383364487131073921834650565475576543075453438968856173358245334877251857535815861469666023850303940461881577969634323244265859324425227445266034830236222494747800534427054544650569988212265319041985550632179024132126579755027766951962568143721765133840968178755560674007701914076809361403018482750196512770256220245659706330762337596242699994662763360582213114541868372421495392604336389957565279568046578612141152500065833981995548195882635891469892917500237126906487892391070616839722808464462580060102226550921787050386681994673228767360876840237904295393250907695101317295622998120106403596909737966818477407066856622423117690886481835469857903560979208924857132939845801064171762944927518399518121393872088975798183689957932093287677383857174323086518285425944446837780918554335054216857883735754204255195217665480993402975592509039104673310010090800101767646251830239781279773219894456001764475315880220414526280816625674850723443487741978960103482440597644333449161763880049845922635709276589272319408844252299893942123275255800376756483010010940025260573689610358882074105829660894686572008397038239549336352126968941365032031967043659419615934990801971204490694877810331786025193182646871289206102611361924855622110956348061337907161365751075208782573736176881551280102174379914669538655046547530491108338436223187526383253755177348558712911904053235566077974230751580515046706069247651990841215256261254746510080766593671269111539536870612997433756131622602141135698566935242788364428063763149677890481332832525472042496501439943034115173209580658667747774112216622203261408756872746973774247496863376035160153894338689453392721017455685285915519501038429904327127147774698475143214561712680726577258886153469725764739797459049071120159985391644292497009825979489778865768060267222847858773802715954023742108041438385999486102455991878504310557130705232395601790273600072267088198144967861031310062793530532750457811130019375736638240511891478689166013158802785270433760649821853045129521378662537592875581056331755689923836770821423161876208416800762464844213758551696863564251732639758190953775432429034692789060742805565445283726244701295236349597003466281589626085015965608165777951337752431619858375708711677634237629492568079896166867068658931153419020314284788915702038787087639303442916991561716768265511502212792728072209327555790725696920993212872376160033902075688334602435702275452365387597182381286865356009039395127094014404903060571056341960888640556135561405267210672993473778178438979045297536579224006959311149902425761756190917006022190157632846889210839904883625583002313693343336993956337370195228372919498071128775703373247911133575275079258290759434002314631680275685486588277756861080452632459880673409666167574119799230807804114424461984585510134876692103072196837683535542270396170281130598753747832577392488496287532855404385644171870377755625933148396440537552749865506581863648952072348285030858776734587555617699610376472042934092564358003669566587170518559471229677919890988517075243944054918899310706704480227811838033679724201363600167290346031973363397665285105578259239559403505732298074833718406609836726446158439211067991579417944896898488629356550786921913763729245223662213040586958989798100121619835316587127677941556865570652800972262273620487312633135020885810971638655340618757714813686102210418501703733508907278243615988316153211354425861500911628640531244845316666798394515220693439467727721323471582735773468085697303712059574632733113479139437893144717213755532713172158632744595465559250517112173646960891779122713567319818889590853773276830429620851435763256348323655224865175330772286574595441872417330916206749513179403849988300248287523504571364497515615063668291764114090077253081560591926780351607460153448164514807311961882677946232123296384936371649897614534153474479893483738295250995748698365950203256535221167389387332416926245130466933600567293918683431121017539351781236607372207406991024451908233658608811606033930783172952824125301498886460090531708161254843256731427712197665466518975758241569246137286961207754082956095139147788912884135989316997383603516859346598605776251087193878432330852567022447476942992387052029101992136202946302540478721617277809197379567332365341266152667430779742805303139737278374138491987445908263134900950453918809045081917019547147144402399234343415382358938862132720974699296529810629403493590101915602056015886558866684574005766093527504972412675832554404651420480055257982982566307315299008763860598904851636550365098345870163904531244415765161390859701621788544205375381217655662668670407608636876828785466431048916268389060822030297012199787976007175321476267267684198523890065877661404495548202522339263809206043842119068250397572710619588383091934466201094348964450533434710743200728262527482105679158224269648007076109060398520797242472214765049025021927880691472462194445879070957857824986621559497344791186489082737261982429715126019890552265024096221704801176858234029670291991408678472251455311278352350370288867769690870133678459235439925102481542460736682125424482424609486642538088001675627786287084215148294564888493133749412859054937889524642324585877257362785186606525798752647256443127502518248463298884117894627041183137357679260048542286111092984890242553547437958581919539900134908378532359560861026569668912094333851635423445858806403029821010119974221781966949930914324661378420651086520192238601102704265404920635575497074821272853918109015855756153936659582170037551801762182623454955464610847127578714824458937627183675019885639144864929836693853709548653270130456265696832763084976158661060331687344278521798964627679856001375507074867463606187822950412927395382298694916820957218680037959837566329200883895361140175062426861554432309424869059512813876252843569865350624979982427712771558908663371979648315310771090197149655342096178232578314968356640457870158799689830216652082646091420729082742509114528368722662986809764576062950976408985823758768139249142728105066144541216564010627640251220553260079046758727702637046543411764704562260148269283897927577743446626120632152374258914550424483779492752196137609658756992078688264405434150360827381952752868557435234380585584422837245212746946010944494715531134792244061290739773109399679718057720682071428913476453724342193253422267718898118764511425240024129689618719976087727233064570060373139428804132712885493911428735191901855025696573863275612333782183977725889941470613781864339956797041228969869781511357067756604587992555040629991523580012482730736800741917334983800751001337960377820756811125598468554785189148783717184893738657421867696698799533013645013845337444838229364548633001340236365060853515434526650982096448240884096412664431366956882437036870159832072853455327799350263816727425117158691310662578429285392907495853770325548901044554503292990313391711755385387417056428238499969607290275845513096870181351115763244413980784314920682425199263639461016360722479534916962167570239621539384631310022605118019203608080459953643501979512950562626133136921506434287819248196245602703484243589200230942365972562529225297761222603860874431495214717183633517832040040088884950795152964955921220015074113096220598763231944489244842107234016631946682944395380362548356265866076052764320782983570723570409967667029634193394089815814450620105982394369352447313152894215737681152286773688015802432322309229752439203966875206951741079203601479893264504604664760986291732734710043911602778993987051242797695103163330116359431319122790763142223962072042104424189772556093272869679362257624527447960947976415549238418855479816827698307463037367998177444297525786589006729488521389761609556120642514439429907927387176626826763918992496442511758081421424013328216025379544439503959239591352478561263474327103232235777801462919553993851474457661858271961050740961913780261188939584304431776616613204122004878002253937786311693481536251818614273024366461627524661052067804749570234330071090841825376979641584268800214933316297102858127832958395640554924547612071967261245031165171485646024303992655758475359941717047105409666624815327096048429443541150511171070977754946861245561418168905414678393236856692202952894493409527686515409548397816149728317132306792441204256254801218423329791210473800311449492274801196744596731194340636671005235155515501334459549857563955205669799057047267080119340086115510367236775079873640510870697878800964650593153288635779062956924884725804370177982205108992507966572010817728648824341709598395511263615420318381517561551319855621853145998846245090508610785304327177256022374453580839783220167646306852808168012770187645657102730880876696013657932699155268902930328320624252329918700621318806227744260176335629605978080480015329723700328668621557428232043030434229271609252335306469990337770320903244551945232637496880082898913341036239625479218448308803353736153632133126243859410327747526456537899347226661249337698209062938827419563602948700296670991638082714971065654074622010456798346089058382115021391775905342719063323994740369858435063505589847762625770633506993874423477728745604889778927812755085754591815719192051497922639484309199020038720053303598041416906238649773130867249045344433042793167061834423438518844911100299098315393061480310658975666258412497246744515814511286652031667984852044323507873948860689835574215477135250450382605373507955212308427063900972672993525659632589320889352169054620428385954165609244286177178305965663433738170876180278675656140544033177315916513075869809873100772813322223595220576362547168055212730488961295898596577756998512853433176951799773849856529710300822734900035382224030514449313287384337885071163583238111793463919317653361335885393601401157084651640587913686028746659616216911096702806278176249791091234998508253244024616948856321471769654425318108578885093836634038395733693064455275398895896861911548258963885897591488905674825732611959034058518525160602845868854129185524286800429040026204134033049573225422271435929796101273200027966598368912863785765208019136832270831461118489140649521371322373724724498751810675344790102846894166513259394800866865091962660979602111662368117028385373691992073613894612788000267583020915846389916673141417161545256019247449144052223315383549962537547911272473654933737640850370394088259240342049353587396509270288821641112491914974985165200704158726031180958369960993562667351214364286719810646447883585952571612426377815386092188795670600095382393738986861963049283113953286742838032714085317513932667483734007234638431289767936650684916488245338636646908517318230140422389842584235045578692514341687391183513075729849818255481389127110225152445992990295512332546776168527004687801686402182111189782479226557982928877853301021120455844182504158218632424293902604535834534874723672936684506873476949130575118620187921002108844575883171833208171012504763070674641211217300046018406953073543558267103298649160091408679760350795874238338720776653515359918415375788309985479294626814093577665415103111117685250301037148562271950502278460429830079991594600479926536898282489884592424713987310201065500914018876922836894155339578646227625969102298983656993057028256074309598778609977614194626318895252879142178955280916154522335186446265661035680693740576296306084134375307827880967240890201316438382551110449680185979393780534530134605566434448969882659674593774217883451472568369630149081826881252765314518428955220282951838546785371513791302774376226634913271953116160122438130435026821337650908556260989688642763980372479283597117170843483909194571863569788788281207294127075129964961098992907567925920056900629508413489952556066458349762988605275827688740008936700152079663756746838399582827301630237374098459583726165065296470709746016685296100217196203898596670412111047935522149709029752647129259048049072030130528138868245382614047639269560601126714371566336020958300852052593958045120077778863457926391718526227259028682383517889922625401026338398226041415611051164319773435932018897483549933537038749995824474809865873779576357475311199762286702274120597456022261444842786234845995210103912028496416377802366080873014602637897745638898874174054853194210819376081537716408898132786367335268309984916693947638826205279739908401773707958726938729982577298496013002291757727971379399357411671058929404596048823123227066866055151845291166530141571988939050803159539803219509966509080601051577028344780141863616272346799185115533946636980627802998468547165690283969615666918755957255452323558632644315156378038713466510606887341697367475249139879566757787399295411223411101320400155242630532854094987523599770725864064704476805910037575429948172234858910796847828552191545108468043906876791930282919062374592953532006594867565615164158328425239720750758676917423429906389262262740920180437840229054840836248364957358601917294100801942430317332607284328661264157870122344261807553816402546253011992480731750391784718967244507376565461611517801936573871064845722754533849186312886355880852258587388080305958684778161572065206633188095382370288383227374744356395392871379778577907986482367835665616146310633696823014945453716232210094702144541702537829116020689184572128787167379905764105139114083522817728193151837929013770196018960662273302711753682246479560413502838327007840129997425255420208524582629023265275291266144990990708014930283775844828215927356495941402690661991933029267864873186096299355805574862919580654966602260716174826589659142008952475331843537220788773662076331277982163077210249256291183082099253604765817019381362153400650996642116600272190155461777551782810187219625736646443144502303555168400266578629599533226844203452672661245098192581859852605258897744226974404442002852280421588778870143676826772680354235133140859166947440771340210284536108079350616345220216634663523239807083408962572216060377375628813460205347770391542475644112126546970572117076541053043215801699047218937253814276080084106321818325561278830907989305566663857839507382303633476350514178128855538861206127208406469322369727672456240956998409425268717943250872654023462996753158612951631908899518961866819347898219193467012807719820997955821353163967515270891847014813660468226796921877541459298916282862923710532538694928879556718347561981213282395134531630869662605127720900939464123655699614691945403344788648420629708900094762243959756968050594218716275252812000425079668758667040122366474821511710353968937837475508524300591437325509651356676901947083483735996563645957648666674983814750293968537302280436360586674818108336709684606032734250591763289649981778718336071935586425133440896278247707630040299001697631727949842893540347111391810765079300080634673020444233854515821135422306263552069693797010578226776183158025211588626632967417556680400747790618819174031095356284654218584492281425146390334966673616203764155950575414789042640922392506124597356656846108030757877807633408707082506645019045553938543291670929415852873085966570429896971049490373483693120508283312619566187548601898927226738760849375489232442655185384543027664795650324998613265977838352362689469881421532166075388205926100524148497332645733043297243852503425904294454834060175245789628490349154337204026554491789314555362178620221702589882114565650521056972588604254009475268402831880500349031034913998627691294763355212535585337674478302577776971708791234412578227948952612318814136172305423899956789814277340567310267428343016561098343291313774461607165132372207199713365040312415520760773674066165548787151054107252544011462776550496598759165066833763648712370092938373545207347068966977486279003863474664552328640017073994311566755514867870819722707353119527982644798870481690995957691971759632095863944485207408479842404540519200080253238871490031327976977489677067360276525291949909132631183896743838261781736016712055631483852730015999721419388862355457716047324299499241878922529533994847019988866644650491146994308318089778501645386495044335360867746001204607048888102566358846295868937839256149945301059767990186472045592758956867446735966199010389927112718718473384252497153691818738978677193311488711487135347841199653128216073564242830579199229733806609725965231548582074839022981197615083129070874233805690309674757832684007722623264633483082449779483237287620112626198256808885130084822515383313412379373601609881986131079093666573378752494047512866891739474487545998825632266491852102025862026219286780963801786210072308226920238315158423719139021206603747360276317141347080628945644616985986425209962291560424045571637292751140989379435246485159758560200534654700180153795381350237899324248928614592164441849656427457420032561630770317940511218473655613105130999861599395166466341224525471494688070291552759024310330301902694070279772447846033361266568866268520571083008525589682876597121272847954817628870189954754456056429201549770587252035393383407494239292803451745571494130379352083494616124941939924907856073931847932945876944614416856782527230932620809874740750239741387226304872062850324875507313839101095654156549765481804166547090823612608662637027663251984154265905313492473916783893496301052437494317298412142563096679233667830344159170725805158475949610927104963784155774314736431624362550616446112132134576763058525117921932378621272514315281268820487603241651228376146004214345440402684789488589493597920720586535375036242693350942508217138307093928007300858892474507329734524124820081628700932123926730055101807298427668688818336899451752922023359829935889886009877932879483970531894255722387849894975333511418452630776330521686274656824759775609846364342011768792798862073097347956100312913857013191259594040423803339062564906032812846131759569885367477178339607132502337976667798717177205079287521940573044462278165160905732999173862608841987710316408172675877310472971586539190618191379190660013217497264319912103208005836462006116014761911505880530924075907545985406127576212222692974717980153538369883941618257054636398617711538678393180589842773450515396999240297837864217378234243737231662309023825416004438580529620445277253577570348050516268291275331485759509325732423270895856481227639098449887894308764914703755037144096104876104969371258448485425797511261955172779863051359509548527008258516836080992393139032693479012334530013169165115044325177571724278146002681548701055573651913639153878919407657575703916150113200169669500355874103635268312750737322428452000306218103653923259434523888735430116601389849557939542657899049683393734843241524417199332371901505790801764234508407335713585566222942950788246396340684376218168872264275849853450550746229726096762211999463197280310036022910929379568887586530227216230008208282594926247416907514399392433224980691575460695205414008836442363337688678663786505576047840545390748591069699038223028259572770136014745001803160981778897886615830620852157915567858389184637306330543246839246043448945511181327560625032266943264158744246134241777129745401658076207826323453951478299579876754746402186523528007810155694885644195305690425007944919052922163461733880176579541091425880871751597052982982034875034310829945864454751123862839701564210522615639652095789308718213310446506660850821194972520379776461937219110271262655390502905942032525248597521967699031504816566614110258419660333861929801577373662932220657113185024483107992317693472551549493783351637286454506632439681925717663965290655395689134698264406139862997461101740535296981812526541407262167350974712941068539400629017673824885980573493877424312903881949699757241860062162219867793890842871668143632573080830535657183541116705239134314211358528165336305729070844094019210316939666901312519455461356008910272795598605160407341885667898817358681774005552378777517672861722887007316610710764183524863014275213531922868329416237080956699558268197099809410792810198900000183081616322619836488310799813391168948099103330457078450564427183865255981950357311276111609306279112515454163402705843639296236316264983644545078889867551671705816593306974029468471736932037957580229540487377862213258635478264131677563690671051326428452351296000677541914289769525156888774499723707440170130172202308465291802244532318506013891853266304816268087535731208064132466668515712468102776493832015816566555539560160242252229065688158289619693132929665246124359725724616928363892601735303166413597690855979232374811376398884556687740537489930264398335721051295168468022334580285822381293484601775666906810503105138091882164901725006067930975099777326830077589432649773416248939045762724348128365958436858378974822898095580858909215794571891746462739611287938523208864577564085517122541738502768127745509098839119016041375298190059401897276317305061507239162045961941767254283128910293698787546548709246100421059983451663514248517069620700308817461548760246881858195715861815990401142662594415268754817829130042943996369462491092359758506826426458879376647450127204526244997935633452079492864612537971392256035290387469061323737648732838815300266422810857877964890729709852263390316046452026918822274974561974641526026601793158405125767968536364552459844035841423922039106292862927344264243953629592669009610196657899475658796719224500412700855568221786393252939882213158803117388575593193042905299733286861122075000514648526587503236206924064496310486744534332255709694954396173436884078663147499659475046611259639748354010651903620681940319403113112086721860097895596793112947572778343280072266083003060450217950638289748729858461113460766689546304155641475763663807873001321327353344593655754153180936573307964979832074517079110809884257485601709074335309588518681960560887736785636331082647489484447469019739414398323260369677777084484987527524268308751326009096314052781888760101531125735583782319109362143604236242670597647963456520302122729516528536531782585894038015748999348334268683669963204922817791960409445111649286496545779537147012988691470670053909215810710211861323647759472863399887417920334959457222402907757486758247613822914193899699607485100594194612866544442291332298286717981195443015665047199241668351654569232555815834949667938933609239158737634361622548325826887255133489573820172624143480361524606251172480884745912976522480201963295808280219107608932770342417727277767776136418349435562785804073731855538211518109194844873606963284515456249565267686460878777764289764561358372324273679650603924232629149939539002540653674722452796764211154777339049446078303637051728967503968510371958091410997698129608069329002752574575965649212425444126627472054822863838780000597603095949011665928265698606812912500892154727300364902741805628064619558291294909262051414989561918757934172627806641067100565740742957001051185678243416892683810432695594322938742061932519202300278078694765718362774153534800930673700264546090453231772567520058865791629678989894318392834783360390679847218841178831150207478372583882815420841624765772716746855980265550559878445668125008474337071993983415016595542606714769841075716319776323543679277618208428584285409170790168191617900855999624819083111079723050015367894354516139341696431112704619510254021903583147320088164379935458308680877108525002364999474152335775328078017992361525561005587392541662473048071921036592830932329464468891044970756417336848745687822749881706064033913125154662451978976966127740205191284876471343022507185045739346682340741020823433371921869880070183590619124955508050460323847645629469839417905242823146922495143951578173704274097862630107410793083614573773858290714668757771624779997067113854247798381307108387194288979096226958822825695596704348274527406302551811659320651071631928595378065333363570980664917508433689373353822824542569514458927980990192016462109276056606614841441169018856129369331461835476792306013295252314269188327365880309292156899459162979890686165806371899365665728881404392360534536892074150099804950749312482046570982361766432343386893476888283313540200874614540284707765600062769848524956712075438587405219168407754623782677807501884454224446876480030647312207879752158276544841489280108118214182341454835479957050460386996981293527934847192338078593638187243989536570245642935895873497874627113232177841751839322195667330676775342061769119806014852847008668753972023790213479139681710815295684414381890619875563699187872264901310209696404008078567312414127390045138201648508670385211394122311442832218154904379496289947188676151302592369390460618751667950249434195934291388690029907375017763949301896807075005370601700551216078427884409598492398666889070500232531642534895131614531243931487960872217972899778198350707160419756675269694737970821692218984711023047915656203723496465469040009267423984387157783031937819099993113727942103400140545471768361388157369111127636244099511982901798262069044258926661720676226145847116454771826597033933331604505148824035234425408468531983898023943525838419556645962377915348009147341704210101661563388093120878697145866212835743990326457362954361469105430203949364305766003938060843393167718387435738323736623757943165103920693190906035970494549880893377920382071611515754021866879187849541198490462425069128983224144178132552776980895844494874266777023159741307186221131999000107374499571431059636125847265787052349360150557631041422362781910487096861614775682099574706112521564362802715250635581043847021244498969098211596719298079665817099999655830465914436494783789375697693373128459452629955872133668899989054935427256880841505059600852401723000083129972591017800625794508942412227451562196199352860596431213465321436522230372064738593121187342105967661515829778161011891810516728112416577303357785117164308013844222227323762602444096342518669334647016468714137636698511666614906905153177588479618042204115543196455299552236329566320669246546022914721839038858597874253299554010366418782573500913303145527318145987494440072682680585465344922289357029526755976413641940022278108162138915939647504154348770550537728883303275560419289564948106106103002354297560582633767194471643312607398150783701251223182374012198044634759836066816155266422003661461274176507340808452874204911914148931634902425990157691748982907136011495975515311336143141745113481383446655693673799815371379458739455244426576113149465435247112983244005086956739363036277683373914720826297165610943078275196600025319234390900255438172641064732845228640304505180130000093537788563955714813653360507659187229560916171757226287768057634060662637310242976158287418822973289345010252782916151943027289574444588688409401960815065992338329065513755465612853397024557426164909064654532745929038887258013556709010591682237963553507080949116048940162958661275368670526819484298432009200872259557010278035761121044248621830766763187996810659382004175753631870819886239495075553903745664539486286514089478097874603292214309532409589345771326583756176356771455823688733088627538313658076462091368547239777121646661467908788956530384730701835132987102054999080550835153793703332359042014687614721298625281642195016349967787280056056676049162745422022609004297906500570549980283864479992247472162007383025104650331163076303299628700597724326339000458537063266113423702086650096970381936573902694344897698936647787193471740414868795073471748155789984925654803559916471382328253514608089566245362989174098744347211344189084191703539163615250866820727952759371992217777170185665210790895885236719548056407320784056085347677111667566642990208071469911292369618409202491569084423527953917343655995733390913726540290244421074724235600304321570568356491413666243052524594873728087720949501269323773524311255974889798300707267866439290565117878283989822952696721552867570497606064337755465477894770956714263747065761801609848621484567542959961408722145269151516208936811196820032921339857093273711301027020028223987570400210210206242912746202978917884085346008145983220312849910207531886354852256314281110830019827962525356480274472068900580804929163380027070087196917937958614452840635027286014662126083979540874705374773904954888673549523862325129864189362421024240060046488161598834980644101619754476581406239946406926558565636054100912135753889770678028781268244831478245066308172640326572472988203783563896562527734090250737741723785634155353837686379687868317246625210767051649229150499079936448339585803232301885199173437138342729257529198744812463969607657393733667478101636830080607477292938097635824437604184699695194070944759607079439019363678121321114427971538278969157379743582557610698277422221758927520459603402135613963453704188288240882281884153278209357292934839455430025335467428877640951500299322838678781757836984607786466409339047153268873822769322195449883923174669978962582636893448794457903284215850402203584047394086885137334907348539189547018996168371912364602591898642055846063958106387823514858925770038417551731510975497010495728784923486009222939560654326935119539197982586770327253302484953578705727700436056190506972291189067545678624681862400646914116971724754077773937227352454960520025219201271353332231714085724331057014542461137235618033964316601164113972154546670115227490734000626541744171621211556247300660760146418376521325535547319753062179172105568272207033178943059379497542657254707301481649020557535824621332554775782758954505743377516555085052551329292214910310987810350094427907113635590717152795143248082884182214038265311073323143008907403851139534429771684020521363108688101694907151599838518851791696126959406717519881864686588562549208026755881456734517658280760181662672437950238804372209701193724089539720723378891463339692830029206110096868476902676382064749466143067093267361685732062470944813348881053467376560700532451158492022727129976419480388979908354760367934802062709604389947317109653499994161244492291608172642819344223391296489433532664973527969524603455213527487837213792800821090256362633137616053050715879455592134883978447819806735894299761978926320647163599361035016712437432453898923961792368842276339276165327315499956766079267087160008324120741391130171180159886684159254957631367305520105822580459065050671094734672407978505205931383377304623545201840483835129021958448040694586438694715284075036453210912207752845363121969654170110984645280062548411412958484898893152677497878881483318358575215729707267182570143999155045082750188621480434003127165049417982736549553094063890220123423744599026232096347456400495898075989805673062694471163856169686360111635839130055891477853957973895028797850236787155045504413651812249059671380293191392269773112040364255981750228673113143027116579772251809680961422373083172499234617752936430538358267442866679079330152991225718402072375406142671921121008722225336607254462361853991862509667632376798747760453411434679873618500950070680754904175855446767839886491915620857669775572269604066585414054199843204613274719161865284404319555436211199305517594816894216463098042864187442664213884123505138703771310538254560125305344245337626113943807630508520401204923656588683925040996957711895680156222812374043875367111895945174500137069192637514137082252988765686743508224262028702040105481296964913828257386834611696111404252725369405302799380998498990223035624253762018421273470537955380303087794649019912237033369601699193942969924752118458957545912604081795964037893905216378229178192285524318493688749765558422463229616732840729691871733259014180553390018868179161881610430435912924937740498060663094203620036388477878096953198144506327282761359663377930950635484555759459538088267155369910359893001999181179336534096007166688565198688917020273520309168909681373056800055585606648241222671539440441829568426545505814798493145811978046418951793140026472353493766785700426936423417799665078880059190149158985472669515559709896075394279471106851572496913848946631887875373239991892141071707182917566706768561924685106468921196716553956114238336667532707610718182029360474256337812542931272619947667662210746666073711194741150781046044960209982538206822431771679274103884047075884480576673693002895299520658260175492430863841421117540245416123715775919273154843940219764513947141088516496242119594588764855503502564838098840583547019015851534832596170416095375107306101561814849301582923501294883139352565054860255029550985878161979220015283550342029292922020265949825787386493533853419616056179816225080985032466107812421520431964758574595184889838211090223481144656511769928538957271657702494984243187572645591940842549325442212705552278024740229644045183005176581876417104267741032651258980140776765469378003625483587959526940023602275427435767731621441227950207546211641117500817922761635984025628541764116416629235544044800948272468560228225524863151829865766636743181911199071352723705541774708127639701880998875194199470360447985471136189462026491824130435334178671243607200662940271834366196003223470267339681533765108744781803317422837126957055680882647876821298509024138000592358355155199304875360449314585652403428409158171223307766933591414049928718311985651757215219370352567226371976661852151036282744322721631558445504669604719898829176910990715625484245033283006825503952622288805307010605330736779281191040996195200332798333801622168632213108423648324800405456431427003974626598045888663579818968738359719861992871366321099710187179158287403957115388689104897183867793496942278222057184237484915980423878055429848769249236004822195680353959486555202286515363888050507034236205528596583144815594145625430472289630409466691605233690507691301364285944336755756170942038507947200813333899537306323053727086924159463287279389178931946855390689094110985023408407718372485812433466814071284343597995265141055612334782698365888173056592443930860654784839596539685984285381059405249158690593325800525281527987470467836584872351009931243227036651966751929280910302801402197536234821790951128189067299944673026475388200182739165727220973049585158144343213210520688330848893833389556919301293534046768212816645834091323852509318626360461199561875393455584504704811857637801463062923113452350330271550013445689225935678901855222733421392911682044289043131851685939008625733615093248286382327348614117728129578377555169369223571526073834961563810011839392958619079781363189215570972742535339519528170422651740968456986582522126195133739754217725521059036821756991362070766535189162969304304652297884757594943650689377243705080538790831260207108159450019956285049133952522015101006148415722689462503385435920562156671598024700021165861104911540277692953722093281031622856104907345306258783235786704125497562905707924173878296652355591428163282473177692881591250649918521942910131331714084170187573536884473277393593953281661767968768601457570022325114774159232481564349736040897168825574123681087895936154279416027848994227483720791003263434695754304338557188237890307937777037955151305442286161206906800662469696767281791052919667523447450047416612171630383379327904018710950473270901535697925212647503557802333136289751029397044067177958248237935574902086421771193998487459144781852535076483241274010310591855523491199508646193776282541106591780692235838460245866280785634879088407609198842254657223564701705353537530177747532738757058530119574416312763656164946532741674041029839033757966271056465311734041993982612279320082728235395901807795521918914710153847491577637486889529113205626904863364481119557393190449873235761167309574662075281844956812459311445882188415943843839137562106687414915930265193651279187642923469155649020042156885927793285382743940177707761725689162944526747843036183765213148080299377141678078316026532241648463709971276268072715591066597117758013933567613398943509322578647210441440407578868279056239626745753327944770760301324353613098029178041125984422259293510690479183764705159870479436514105461037466165951444746901200786434581786011992227059225681385819262106600501004152867219826504072807916666662073441767997226240341342421169740531800758102947024785763832422785854214194244441669546318680305795366942117566413046148731599502028420261083621730474983886011842887018678467654147879485720909383604229181667974893552126356042081070788963643292996725147595062229558411610089689689713095727182300502424915937306680134358712845892132710314376222051270477316317499886030072237860226729670560996024216412897452579556761568239527035165013334205332235525919352151436000668134787776094056304441373052475899133405386977568160569482631264437417978169320448631245929704809342813573287555166196809790206418052525734675389251875287953798471109929259912343525538303682026557110116511129640190555158318894406303028180267511865426127583701152776064133118933999022753632320459279396629782542395563859928933705767571355978899241940665723848234938522113812988613621099609229431839016910093690403856633589564657119632201069183060974265249273505518452214511837297627706199490783021680664851290788783737771683659681659103721795986648591919562406946652049677213308506133807063121291859007258999072665602237503244795849592291093056664057659558410737096592787369490221870778206864833465922416761179964495983932141459435607507876338287747600323780723623346846910792395245162191412191731829455159754342020028056942138914039739795487419797004466053223035395860497094252777064532594096788012084511330476124853619054550295132668060281170372848076182584756485986015977896375403746800881088742175880366331387613630593820211965720797269040045610925250242241554141652826279794664455443186109495420336889187999854563542400847919906561602037411711747069613685834103569147697911084782504280726014527180976291011814239984455518110697845264308331625573364174472746670775159302742921588794344314608012586811299095743102808918016050034761119480889848826842193255952052028756445546928828134803073220339566397398466395985427835821789085172035379201605660710417492600410478850840055345080490211044895770522011441877461582938989600026138202885470524638634295914643108878912952167382917980553765526964123888661278885944695631655511346907695487231741037630551160342698019157082829400256881087845540899771992021014782093686851303380971419871569289157061631681275772415374554577924358197779510690243320912899579822127647229922528494207109372952578012763447894075894233918243409878746797007875859486381875639585777533295018366376066556128339764653870726109309554119147821187259015356548738884809833058382580404236263839934381642677145068423243634381573990396983583048988416362139354283373208600718697545212667995978566038812349237188034041389098895612996454354097968829337798118177900146683791871567942632847573826166017689163002327199814462820732338285338417975342868329867530489499811187320368663942316066221378018092621561748000597140116880820880505956579144512650822056186771842338324446104682517322506616828465774446634140965577767565402628664400105347021849558774489905081744252074231102887631728101795764216030411818029702926440253082016156352007031973621552265477861045080140919386989370736845888843200070869925232952962287616937967942959856755601792074265806870357846329378231374179094384908326733164646174869967533639958749269161560246584344119373708049275184561918121013851610695504525556117735138610025510506851169715223340259644557129180504397175806226938397669357349202299999053537257571584896016809060078397832616439920525306529351953381275629341440588475319572493150624943973036702432927261146343072872086850603766011084301785255628087496577838358266501616830316707974320469466862858661410634773077523973761557235255123279288959543720286868609342684113694545439390064975921379947465155507460090328997184853697071273520257528302412198359808315420099612732312903306360044695559190833157881006119999556832712215822415790270196373072156865326470845574617261340353025904717556841749174079024723641111653468606133081442124200834835564961919467799275822443631249537483572574535232077738564482440473464072622438088321150306625377154597152288573219370134171424863624382587008655167866255574750591483625561742045371246713577286959795185742739977158019163542864104728637831221032900746537775432306649253116904554093942372551784044641352190533921372248364891475424377455419071349811522099061338215956839870141408716403078991758725085767519216548568397022237706709731908620056358186065154707688713881886508547656002836507097216768054662136935958467973164624634101355914126553570084062432741305057277504798237087377643005319276590809804705138918195735999114586532674785645220447601235859415849738644672869082944474421269858038597330215270220593336423294994469718508042869746775653141861530911597020892307048625674275535505169484385881104005619172421737437718601394497489962591602124248015043182774310459330079252633676373411505277416584111200417928928302138227058237411280362221130388265511242126035659501726394086385837983380809252573323739647640502453516604464198474053771621113404186991187687422371630686632762550407745096336663358094721765737455519746767108662390755387493628531195202087842994476015975886228695337212023212124697774314954123528520832120954440244078646039153102820225068450862254513130692131062078005528044989805581218265945702225879725193962292980547424638630166269116588159111651141733205309353559437994153186065542939884054381394804089040513617049685810420565848600818377045629738333464778855028449700024743768221581317061900876594551501054684059659202349975622539574436114610413785547527241304087553636231832074487801253815146642312679964672768619105069348376141040872627251752364705235150774822216804013324888579342892305409875185155821387549129493336408452135152006256148339693521881246539054344718942560768842768730032406789458682052494246910453190859528540655010766281808613005540675268520055791700568741478331844303709002319032296535721566354443575796622550898852742465405243860514154941076731267087597789578651282110193959588955336026190789627056686847735804482767909458213357057139812231875723294372217206497109266913950370099540734420385880864788930392355821151804639657507525766821828089980555258359754079002209976003937515673172345275549008970227563588923925223396725589274336772258430082689044103186226535157502413346550876189364822496869599169707805460829913203741649248332202206959346461553652156335483930325832844885056925868903793295785652624637807795004002760152590769588151732233887247586630649920195080351118473609159901166135668812102490570520984915263274322496994772962910231348897223227330523910998763416889959932485277419347509857608547398953216455843490467994572967518778658750093375538386539184027735212425035272242323585116050689886116692049147542867420868444555219536258249587842160383447048915726662574096529879790068818301883275560445447816099695105963050104535190826454613136452364092986788255055877069996448681721961641301440781468719339093502017885865899879475285921183872067426124626930797060636797067915271686234984153641995205382103679484199521961738447563280721254969692778383199747295949879973074615671569587745102576736846643972616954092019006198774438092625730510119075573112726272937402495332626792238818807091400418656984433171186825823434117762393233135155141816607944707633796452594782533047418751795224337114833225465851116761540664324247685982498248646634628486152888081648335671059052870056817889852762813631833953972085982841130333445968400641059007389501791956538264450453309715267340969480692169791838105960552433718511248796599732313543662659626421574160433318944656533383437000867095958106096592059593848370425563006298733695581787342848654146094925277028481761265461678049884723808000657373449397256246865598923913285972836418969136807052124442225122324765696632898218092133542596227899837119341486399180824970605723167345471615821323830029456201041445213695882540917344231185491994003846453440705790298949224424723266975186225396476385638892773096947256886155441908528073535532549491376964998876839853123200500876996643024965047827082542064462212377814045075835621027091849489753098197389761271173406586714211806097022903354372814571054896733845722882141773678116694626907001722184486634296499345392086862636959984990130006822371885425360403147311898452567313614090924464086232182101007905262411433036583373124939678878534817711654634516191354667855701207639609630725121691844988475769694207244568500642432178145452038599967731418787689074142097661829440949788273340445183731302760049448190917104872668241343875933344160401109063457695107644133532719421733421307929053603513601860569695216101995232305230596872972974397535572723039206806798701031799475409632815298914336294665893834807849674355561116906121526293357042962786638743641505862295991711919384154066641096706817410112215799887349030978608283774418627917744433560163300401891832888299323544576507162733338745358985568461813887431756141189027536921107639491660692719869153917853924760765741657005482911130526042135778682296039872994917549793214922315496810728097014408521822738861617684352591774228980400366885927366552192071502287899428907983428438825643235020555999437005195192479625947025934037175570230495251548374270263165830028184578720544298772209367404102191041522135749212046552479070339451570659704158553963761765168021130090500160974501171700507706020743821743358591513535737698240319920336160320140775522551942094099378545551640368681062946533645160562639955985517733330402003050809936779147055881245267857879491940863068418426723111328862031981806888139230174721309062522311067502851898380955635458354304625111705079339000472650338981257894710818632190973697039821969858414145989747614319709899258621715147746149481309798495362220588062641163012462562200966948809182383832104753540601640191987045378248973869636891663068678095497082421116391384320019099701988688698817853972865997762740512586109677104422363262064805719295932650546549278491424294089491080182520410427241633234599365404808012666142884940448719607938026371357004379559271787451933611942850731921192483513740746599849336081725570033353651046904347327418737085082108612787592978171256635417758808137036394832870360572939499931173511335224846642192842094770174590003339199341409324010984464759163274461753832395183268786485851038962751680945177500696156006776001416251004943708752163894029450236017442195153324654862296621276716578722544358275669759911986761393652303493714462468854924758632304285722595260164534557857665755128558514949533307544071024660830761581381948035859580087468623406164674844451261070878310959348546083005553444375058502508246266452796088366022735126241669036822329671240914589833937657664523696077604030652434018375972900994202877240834234468847796875591145410011102756718795711537909473901196915684168657894871908056798842307647293172968359144747744383383227709617122933531814778093028557991253243569014077684497629548804893108091862200349739788620747720581823573194466682340462832706535779385889372322343729708437073480975150568672020175208944350836925240444308711550695254013487473442081856767150440338144137504819525280819556963706829382778229200045704203001815485604251765573841528336476249377226721389375124415358245022361171210055203467594872726238144222097201521761308128012424798432289753818343542523126695334255556125106697040363734539379696654148470968130742452459913078573938677342394497530575950658369171344021447450968694364277115028424155425745664932721375995782526998006356712407848017140108261977552751159786448175946436266079208098591194462128698652665131874756430444998758536925804058191180048984300873278952098702242246220488358306487179939132377208630524993168671271760958353585567662180557877823801715933388699152888591603314723766300578469969785220671747992772931685474283014019306171262810708036302877561691376419687995389483948311522780472626075339262146609159695665611641830992321113967582981985847826950903326375633162000613602075902736704718721803747230808644965276324488746169648064160131242026916243511031757113717115529594261530209149923529456115091068687882158901192670498509310512747012379464261420246120923571310020785000377827874752972618779395939969677229595375144152195555454092253152631154380538715625412446310815340197288059048582768685595330519171840276073079388522809015893603719306131501098292981639004876685603867212918646112613247363610197414132909099584602942714523885286262304232356521090541787115112383066708840607466466475802353838741188708530841857971121223649853247552938781683951760508529393958727275367399071621581972607507143701381064456119659027601514744836450726219041170634715539234775015042446826467229251120368047398548510428606542257118464669779602537238619842195980322420707569954889655904297472010224408322362129513110936927930163216231972756557464156475911696573078571090928694019733446103934490451264009521064205191004917439077518748418058265458860329700355508195510262055596367129632481275094453965537585301059023195274788394365825495316846199060274613856564338694147053396305146186652721706140952605924301533810347932270139252279198719394679976795750370652326698999930818560298375714266095288354875142236745220688473128265533759751647772618652449958697820664597900445169862299848133103510375536819431559400798294970260092933438261081921256377553113212307851095062168174174828127040428590797226829815454573569239395294630536776597792696141179129664378403496807477999237050887442722697636636438461554506661725196993363364955672901923128611754074636697062237140311668870340366821228511141369200242475654251446698724350039467263354022535725031232860542667065386962728281585433970096523038472010265587628164909942852850555969675747557939294340991096161055530090654046392557176095886988552931528366622459159892398148988973559787570206854964669876000897601429662360002795998381954893865506376187104496153692415153517168666423831904249229601069720595490260045425157480207906616677141644404336927960186808438659086657994627826500711180258456393754023403257333552430198709668372808510749496564703741652179722353509075775733552134773609103867581551808067667782916892066575007449715679793313719757746988241712925300019029890057997671888773680165302034053744650547642567560027202793091231093725037011083267740570448133063940537626827623028762076671098704340715324613138081694144115316635922971926589931228195466110573752123917779635817665390121694587835597795610795535602635904678953466023633024822946163652341262744016786867073826240504431257079877234452701821069461095815052496484163745131959600217791993037950592276060753424198753909952894678133521173873732450278813872408086009129285234613040017599899642337570060674070334764532254714078622705248716101664596802483157430342418562268253713933736373678259615387111774243678458277416350868506628249568095116572884333193779752230941160532358968715778748738218235918618136871159794487442051908166173788204578496302384356897287461032298671952597140880333350185231609909618348328045977317966603343482712095594451761944472313304925741299116241944939251415786129992975411938891582483016922182255005896120543950202780489717085922802325463011297257807187155620586973760416210423019869417641521102762403329358759054602281810454788600313205197295493016851728819822664828758663188740819462819539751635280645986155800029076923158197750813186565513034332205003021163058578056335242277001800419309892033842561449704918921605748276500029023440751687492405939538618048337291107158511057771272088371024826147073685398106158429472652156923761489788814808984246169845882546144611026621126367856958843058208448200133100359984644300838778108146708054533317489901291715294921815669911564739171560385205787852283747473659255775542331917802742508041486451975654781274673167336400821668871979508701563787378519406253279504836851664997805551256153090969532939572521869237579713870788718602353208731255510566805020689383589695777018477794135973414963121020707620503553826300228497602970113703724399964283257052484875113890007767921687858493174721836154209128180237281105153824222935703285000970773655896396122376880978079874101722594989306604751263341279589464283577229243848005266352021417089928469468068454048421276805194288402595684157786946191748766986756469149665123794234550849714766872044297724143448284667205528272887525351534745035435968489616912565646458270384388660551362480005938050106467148259913066089231429975292696938509744756475425189121714643435641046592202165928777303670572992674158752591260877850887573536330140071426046648895485947885769254921976914111310796685010430809443138970735091514730851261858858364733974306552423448508334106926996626730539087562020629186821616059933569943150456645228138180496646153919574811979560057740215084442899563942138688736309726947957623888098613128325453835536815281195058365022147790958888022823409158467779088403430515874440986889609879500894091906175011668203674810700267829332624192998501752062570865183800735435271943473902976240426678420294974846960879501122959869369645413030490799533720241709639498245477470231713283868116502671256946440764467378085589814506607865183868539546152773684724775145854461531346867506125066910022901215720969592242814913325777374280209425954699181827851041734444832571480460892074430731273116852498698024166428938882425381563200434301236328679022335527230922840192032187690009384060583074994877952595152398581336227482279670541580260142071828940725605217422176846448931870883270383793786561352962265577687858949503363147637239067351759834913278837366445502422787571772931035095938917702523821409401432204659853553792951526489536490100512118199234232105012820796569129378154246087438605571021150789061513030438120912710918379644515318207605408298648166871759277720574293176375470767061486672821322443776494666259364027950758761475624727959817394340118815736963930777385390846388323500572526235687174518473958844617994639524696094320729900585808343130148699835015382345994346793533980489072809461755741362643458846627915761748053490772081273213115310159569418409913593651983126556614669470382230482263857782897049502272189438146396717308903309530842284031752519145494078492854821721213603418048098427770557535384222567240667453975586989792538273564068668420599461373115679711153727495963874310660918600650845784926345699551347872736372294711846120172984899899265465020662928350572249038751878122974748387936462434112654710261186596339712155490067352336172791921837174234084617572937864892768167296901967930348666612036783927978933417349905552427914161642043248816537245417400861094950948780494390671080190895978159449569199324567022864169078915196635541144827883044629824185467877635147268025974351764038349868536617717455456837450402526701727165168568467817003138700800611884569289885389230584691970035516168208794599531747639693374553849984118467499291949490271061265042277205849988585963774711313416413821171190265903168560976380430226541748221183597030721647642753525269179342410384366738662234480012555733023550724152119398570654880307719273011064335268281250212166625253267359132882516329912906794781722611603853760563306754139373788590969428428315927154837201000627549819173594506926610919642777959596053026856850557830312646273239352167397387929783760714964058693491396544393830181708040014133112706265563565894256990833927246190627061607042151393802390746492278797027154457242515121346143052341650876867279437163906210068401312899962701672249156222411144484737819792407962763190892109797014914509456796441906869498716689619953946164924593197985838369197243077303904480508508326150562150234301986998678728219207473807655566496766377803508203806605726773768880674204391509283872701817290802225594791491480950121475709471922331893522231056242446558794876550339216160533060995141800412206496823707640109924829350710358105019938802241109235348692571642479471794371044731993317177773480355178898110282267683570745697775895129445629667731339443951412124220128894700043543690655365884841863323284237037270612747562023456449629481822523354293572288147490047310673598884249799026041232893938295489706413659666960060162588799668805835144225264297415229375750827825078434734990711512658209869896018914949012011855706924056586947557702307983055576984308636080444989381570330996918499392488001133826335501052819873911303553457124958511071602076025494121826968557110318012010694070624546956320646476848609901758520631390586749638087232110331620571381552328124281779169055069259815011960568195677315766570711636061668058450659368274261350590154635630593211402643292258583375567371760424247134007279970137590586963957310520811779507272276368829570995168257891848143304117175541977396213997677770639287026996704302923005830798418956667964254358735183213334287774317494214054962525448656560632730357342002795845386818115973185944635629873473002495349967315735661223564198454666562553019418257863238850145628115272403465369678000229842801612798986822563799872597659706885609142289951477684906078864940076215494513581605334466875298641721058298671630770175527219678408329147648001169686168427135444674864283082799211134461725095388358184130583517033053110771884414133340314947193670455778823806994860134496635867010827482432396217529196359281493035282736340006532030123037735863227317294130283632163084851752662824562083614900133696390243941275435636074855003082662297301378868131426772555090262977498391491422210988937721533459274835781235693733487768554772338123894810647683354792567199177499384479375373291271315221608292634321025218921737288842970375492286137838564561385604543460502098683638374494836342452249701117326839240324144869118461721805037115939482131676821788980350317702527839024660572069023735918291017566057989128472297986442873923069399659260886548727512816114997289882592031488387750653282120968546424077167328446668981675928355383314926430393599341704809822484928942436185036446324715287301803161944157025954186322617358485335026337970487486604796720989042555822556456560447531954821052212506566643648824532419525146030078810971406381592564691117753328537601770219320755758171127316162715632772807661937861192987695082577859596099219106262170666317151002512785352457908047028430602916766922021473264349469843847200514155564397783694948770115771957687679595118801089016526064465858367901889298127782908911280479166039654383613943170593389490126399806518206287096719014668397005598776297963557815153661287228332029908626376478187678213071871752627424307652934539545742713301115485888701999510119291613614324404184908961606343318483468129505840475627694676325241573150172357408332524577102329474500162628044292752173026645961591737236498553631247307693823417597538657043721822420568236205746940271644447264421513360595795357464386666329382263752286566764626752028282671470181113559229571404069586804988002429891854856509175838914820341171676096460458532418547288019137196369297657865307093227902810671554898923805263315769189429523083194039455583442578333708013038453241420201021056999091478746851700616968249284705576646325684278767760849138225634156024596291598534802560745789017224725469269952396667260420501851225483928659774505473648868166540055377933028280989724265819605823029856071646097018638947370924840805793518392977631609634794068157850517561474329224268479209539959310732813305436986194568173042457489239996187310602407002068744590067942173959995270136442313622747230404948747598344409237915691277365797929223823942196506046564861087391139472811847500024214991126410576886430588125122852939957421225660332557905983339025455019815980957998612488414358113017027922849771994293872875097164957238775924090146356998038808831538960750241596290082597064822692947668423575577115471684303996861825321466891851990149633128482208163061318607091030432564462322356949174507702907140811725082273531127587919863037816192701791008218398862099705719422283919906218481444073541688526449151689862456749512420265600499373955462099891517041330851335369123454524818860864913951383117458610507874515425549680206240810059383479954471780569769163126459749121421863201663163151514678623507761036605680173926347080573069628755360431054768599224113979594192841056678272711926435167291318927610377557097761223346755220812968431426072795013313205219817446631711619488095036928995194557710917876948838243727631839616051734045339680789948317208926684069114225133437790529807779716269959408598380312256051383083125035301763496813099112014019245816333337226927505437834540183109935120810268368273100724015535750102818118039740361874817357058869300572237537083172262389764984008653452747581147583919327883659514766835035704629018120562318218056268409308823191604135498243048865622169255616398687403233032275651231291556525258953538965229858890961859111204967748979551902277688638168771048680594862868702232391530294863905303597372075556471097332840010256286728439190421292625707036085285169622072391737766521750483573583151293457562552755143661258855793863130706360062666545143256133513746269006770688368534481136200219200031826849145170475798721071771868632806017919938990411783579830993695786818569160329540103689317292548615824197894668905599579088343358607925031070924001626857891728307161656933957244543920874996585302710067675550142129725665618649579121993702041409801069549699830356106487485280778289447733462523082946995840389973797545982671692176650751298959285610204049147978948471266272260972532958624483155322735401887511877808737853817156902786981011097112822480407323689509549185089548545202595400354594967735911880234753944657143494908986443518061631299095414589979088009219150915643436850817158199674906034593939833974254805996072545086343418465762670401219982653592409096680190416832163164958666044464274553585905420618341465436931334777740346983920026579906752570197096713870554788083685436791578945593915608621601076266541493293545105410336684300004324573375313031546859640696517818554910126853726170870698021869424920623547448509848237985409816347128660859305776669699351782415308029057410204613630220115607836802113634678890799973902422722596025224252284180578985706081083250883299145922883817735284628522054192159554115030400184084940306815501720337999289211291952395198674246953229566674678368836654395112753985738391636434526830109497849345721163301393331081195009804016731307873788910943167778515640600152466454663581204379911736047190813788602807155386019837322667349617151519824613318795018594432378974065554098868797590735557917329355029382245396766660930014618886309053747206786208417209834554505791053952549356451139944812149630466276914440321946355232549944491600594751711234966012729287682954743735219241898363998245341920249616383703457222730787791047744346991152419074021804686683065853858366740229812153841424741531926275636227989147665290638585659409609188738778355287957403458982995277576875008421321780844541620393339639555611212374339360249127674940276864264962125780790955004689718060203441121141036112464611090983616697396268312723482154391843060388463678367638511001887247119113623903430796648859589758283867242893436718524993724002812168931691162433745853409164501643803465422445712143487386041296470928880986432964933415758672474941858175742682829527991268343432636423636560703170034379934605716299421993032059505519540991555972786917528296882632922231395285848965594073824285785406268504052046688599239561860893263848160500467844339513025949859962971613007442490685525628248920195467641822742578452865634653280145033876628997241898750797052047149006623544449690616775816972255282620685488239304546111093686488864204511041881690465552985531193064240012598815961827854939737415762322678285558927839231015907591872729959918158477434316235880769524090137070237895754071262085528500979663363336991827913717047529483058629016384272939804829391205098673482723499097310735175207374251483932922265091650992863106277128061392314089436133414805055177669543392990797572010542064933213860313346310913827409841555095069318077165002825402279062490131708114257258895497986613494116334754938535580046960349338072356506776891806402899668239996988044305229279751279939047156367931421280094371769658425784118056803262828980391700199225754920283362536134046166284455879577927231623628901276307177029829178307660908325645555370010632946229543670994474384771290427480523446267114335256633369704384102177712443783463158423027722704379504727344534370288418904975433260522564268338166234769662884042247862665955153825091960553490339115479876813783856315747107070782376087562013603471892628234584253227862917936988363636933817023667759325108060411360655792297164546321020068245147439996989471985143414638321295296713734580817734696363731992827622205513901738270382472675032847139711027466703223326672825493403196407536130793261658115113873622404053343359293019778569114788351845838064704676466677408602618155381488985781544523783445851387292810992514810820917708695433804733036856772927362269456616835206395177195566159055452731121309444581244424745908897675085380950644658221239153083548301384700364939181146037688325842698352469130937859963746651908571846839083474523724687689792742165891227221500635541586714337713456077642902637639294540485725750652319498499253515753356222438909843690178496268173831367427211004058446450253422080449912097239005020891170434423202951746080303406203988366112803028356328803006582961551968478845028567706761888276974214182320679769343251506211328853580423287482372924126082836216545122857600324478545214063487781006294418733801266520943116208753721623925217480544114007042350217465255008285844557232509820952712500251091703250694697891409174657719965554173841670500864234666831686130015037152780255762513163051865221222539475506620064075520846993958228081369008837089713357096789042163279171858607354044584290254908227792763969170702336027876534085792260643465088518624438248752992384084382334237329689628803987780741766242449330049071441865027720498640866603220476792157458687287760448831196848942436027198076507343766086612543172479246138404530719661683230913699640910895842950343597333879764560971961943844755616592620276870411296730708844136574644704915030873019469204672675196850505240072361046534700331204114114247640201165713679473589111391962574384498934003434329124784019314346583553171642392052198332532770438192110285795168888572688937321379803633613270406916894817360939157532264878718457095422161788467516731263043702356759256002841557554702196715636247285573104439712776973453209421172257224108682034259709730858925138990772256742868264000527503800323044217173685070940067469556988063154287938454634136980917538765899360649105576996155201674673998033503969561472371775285640156315960407169005307544602289817062569605924156732372737772885583440706178841835274079427623993148526932983972211569783073104916082908742122039027427485817040915702587091960741947720640959097940982329951481891383784479417196059569331177269006321988386281064384301221951587949258766273242859800982286922870386305294610038214063243534870386842873983672677207793369061782743287716232277371669850792086270875057371110633227410170975677842641329023789810609631790000424289950325344528454000803146169518845003424821971279865707114953541991524919943811414852485258972140420929262433938559283033816434092601166113772575526320558436406466007143661676821479457069905797896588726587078187885092611082437855232472834079216040647311202250725497580237123944286681339964965772932934292619240479605972198110713857146191370156921255493005670453735834544117063539852957079728784544566185140444681563111164851940372512709278440031515333241626910906019798253818329557086477402648981615131565114427453109135018848237863112969022314053404865293602649627424274238643370644035127831607544535979915951081927713926682445682507489243048798342957573381698060757966722581066936676154170697056256085688201889558481445584904514287922920078856760180620220565613476836951247745773709200670000215256576558716956599166982159926722671474358185165143216516470464733185401505271640748081083227501742097501835374968019504859320670066225870197843713682913374398022035134970939028280298537785826474770091828966235184601705645977074481655843442018132909360244271028659928503282510461397301657169866976625762510858419519948577633808091391149124689754975615869857738437819624047938717123436805030864335978724490851542736171975026337372526985675468297105650473009730330660989696903166146437120943445049596343019517554025100922637373775455624933673328245246293848986622787664016788294048964819283881605899634991625704088165381987291672772230619767435650997904813553591479660849068749977475207265460722853614022563244870305983140602049170958759716137633695070948080617158902749208317699330595171095404791539283343345887257900878131319241790720254866255935985541907521733922647172645856702302102754225244602067179020214452677110887490315516012566831847320478917808533213883194354596112246295998262381830285126306723382573457643367878554853482415585892531107447327248360895019453759767098002100830397424913622182563539414666014193189087921785462736103682700001719843837753312593259312427054168104797800362633375954343446637545573488541456053118122429923009914626670791929544227291670442532419864000932985360029399838679385260293354252491173394622424065683179520060073488727041083196403574818815667902966273349666506728092166055712338748361851946772841505780748043753035307984210879858883128635327405418036625620351323130048297335565584088305041277040082974438870289914289916738786624767014997540606555913243136320828215945067125592775798456097705906233371567696614402318164203297058358214905583597253017869322637811886003971231552065771162711886424709926592469196006501106702556001841296656487209054774859144430795775767606113148817488855802385530298346611623118038214704521710071980957194321602949591964809423694723358594096708759388103307294696493706808214913425908171890592856359818837669804657261870252199632340204199565958616244067063004787717397558539412961723361228732683627433375971180320928611669953709800402173827223884053719753604947758039271898779423782494897340604831114018414037203365055466567884850018195600390948532652994751872756612019683813437642928473534933985969975599366202678830646886048781113424354636983847930992509412511659516181648203441052411701884921366365004532946511713530367801190124564828733464161116587475198466047048927481723031129266935367719174129616504793829830216653938585881448995538097132668243439006973876330154820350045509098193020262526603722615467066367868104273810026370424089961982801927892648171838728099803186938109515140312083934058740598812909854415364448718019860123709494457847319555537434758307804503764692993267191192544652766666420611493556042382200820622054966687211544336888243980017064086839593090814646230950835491036227362001095651129494704134910869126268758926202246746092703889118639975247516302317462275271054379828958613754493491929125966888840618859034321320438530264000716151282821876960356435166913100990305442378013092569075320587175790384104911059088946198266826006844620513073655648075359563144317580442599673634471869778553850950492187791920872915875922452111221890729539371466101875550174151060532933502834020776889367281326359617180453243361173252416702955103642048974223263157092758929353879561648103222082341282342925277793858169829357307447114009835854775267882177866262654040361306333018980540464715716477978726855570268351671219751916206205828756911409046335189656216350724737462839412737408198096428162558253540685536739742889709291942944814736681548547282296837432398911576584150759157160521842429860945581057744369049763569464490573471273319874658819372102818174167972647695891515527882458975115097353744526102160657402239929267005248116082278423369917176750784706652304344242411364326451962438010615083636234601295197177628097683462836062652316995783749797834355241761013808572629072644568530250961949942087801136152134886460240250878328641360269607035634009920077838763807081072522233461247290755948532875841205438650914513623383902867018795703781093167083331548145906213397543682389422067432115353162169550715110885974872277404805434623900735963870104856043113364374881588372516966342965930598143354312284112585862623518989908249802727384876068318741611903972190031267636990632973356360301119453754833146280038634591815365229064288384578032435908104056620049046015151735739661664588528735494383165789140465923366040256057074181734105691897555077072911848353956214382548190397970036824717635861781675096973068509129479508488388833781230170919446344341805995113814317246420424736263696542174568706624716537930138020191346952762854524730568785621012367973701103207851452955889047655999240280139726994911487947171554471115076054755269515092391570259213149792745055337538591926734415646013788000060814236312961585657710178149926887394260749183766255702146896391913765757341378125891828653849178835323558746024026559096634072690548937631844078692365883723432464326997607422264440272875946266184534525656455060604738557150432613357859514474572867445902937995687056650983932491707068996320990499316970115155501241378873409327054675336600541302899811020302534056708633915977503165516264957634053686971615750474718261121225235618830664041867949135968974996053388524104446390045941559426046007133055269908495177521830897177746729375475745607562722732404552507628757329427441550570271047658157529233241349102742237051394823774648217538882263322396020656078055073191246979339162545755336741990249214671067026174208217432299586647043197035507548098018129506886726147141359234045937644723755176702408746545040919784673065383235999480950544391460343719446891766459645585052928938306085009066591498541668936987969412288649757622684605298131993273849884914635244907154196024405926404045940479875543908722117483725056097919320212535631565019785824135756335082749730648090703005311387194829872713921440765853341586186483301634192887275830634086879923883091153638397597211875984438582893309313457647579886315047208854839992691307544623468168393042826241286210732539591995656227573098248172622081202161223502352675454436533898840298584548373830505800522409510411007447877212572090444563447885306560992245747656147812609394409198023214575683371885158146047388600404278654452316111328235464300048884923588031232623286163205930382733190154885005605325070817658904303135737746815446551850513590701282696249163963781158905085103636942742082669232522581115473458593482580697938962519969676045430894249059994465170009095861011783361630798891934053773223449974472038122322189315464856508130043998920533444449408142938118265763152426334388788757864457642672887162748328730167225889123418850084001255038203267968112901483906058700934128833523757222155673834198069737491631618481980759893330656956446111793406034845769857385529672663460535036305959571400169274930870954812758684914815422438454313076359185034436033122562226567430984308645725364461515033591637929738068984989487222620847477078061281025928386630985460139997092056068309370577201285206654316600033110960291749395869438716302774241452797479668482604122352028458940769293312980739153849505058370425752100770371762616143926960657223620288139405353395855036386773366244242710667658725711635553083199731785270672127388954404325885495497539622259967223106954362839801170227915172108087086188856263797574303425310366976663108315344898967087903705273568734967680905536513546101030662836752820302226340236099965003773930184264655293532795874749609752377953623302607515657066584749734987749540756040787084616028044738472548069394690864074266961284447637786772426780091654215650195614161618718473557203195481115088442552893251170937586508337692683709100729479353645948433031530309015982085603500305340083212003314734515425820970257020103678994248212253763158261256624629044390503594988342082504481983281512386653822630347884780953415494029908248668532612853583670190622649443508965637412931334632727883884105583913059750333901681844979791999718925835616220783148357619160389071967477151373333844328422304293583500864274929046031846000161663747983172464004356933422102067749629493450556801328634959111533237647806819480606615069985757676169577570063467123479875459730750832952829537860294450937499179041781024015769999286765950397099371384179017475586184663424800718202114434521812696690293710025816875460263505198684542812786278959911689302890247803872664171023473273222803938497831287290533477246766654719159589572771204172584597078050593331408638386787592505351282811391785225429720283533037970928676586289524340358856785756850953604633436295672217671496135895645994752346652718270529757133022203199090552251151785885458547434027439013493931802611895485585712719150590417019905206974025988680703787389298742673754523942336452893250614864067768486692738674233569075511401774473705764789428576720238442073445985208224784890200616381872977122270409388523269024130701207848864514502233887541375523360675791192745096392773560885451673547374910853735567399507682507769364618055848112917086556247170453964358425937291021701257197894861706046822808830383757803973509883890847338255160147151533317810765073345409314708596433567622034601542017140610424998778516647175354008275749456835487729156658208713254256524053605970410298573271398599025833459420878391631760228266201248177199397342413998366687854982734830584549443214018786250101508583473601391576612289102819551054937265490086733985418234241080373409813089008641852619580644869411961475563292660655631317811012014974624224473115609379356155458767917745213150028193856453694092478798607027563108456228424923243464982521822513071007200197173570570681054817766767785108306784601738833302472450895840237450840082713470831451856884224212375286152092175970647775738715350429416023729322565665471629199458706929751858168008797646274973475052733151119307909056143269206594992220032499014488281129827082011136433065025533357184243739543191403081805846095597519169196911388025520866836335726727713099525963681902746024010583923894828533454188446447352079677881501225843507164038368488060483938991908666428044751469550973258014513931184976060035857492504215005478845371592364426670250021434628880192497920783739449028219535900649201359187917815625054992841043553948002066673113541922575483781099157992681577701313248938526662582681082284193296896336879001176285314121687678736213947878363090141407854484781752473042936250002642838054839031247994016224127566035103907387536708807623216443663038551853838023188742900320035028216729267647206398555979625332032371711418588175963745230146106941036835188372337823618084310287375060307407040503292614423686478249737354559155673421552666823254616793953766948803179543220540645681046425332986497210571490347680997913324452104415142610184556021645387951137113550003011524481331639202714090815232243878630203483368161997737731910277642926666955114325681636916758028538115346341714087791975722886957115612249927946177088388059063668432841531657799055381847221216806386487253086012909004979354749864645047937901134446540794858039587508804971727679810414312371779529580890721899596014763232357377451313928856258761954135465676996499632204727510800108736254628191428291115427551983854512170850825376457656658744256749645625845304412366106638275487270738956518130320733630142684270383299702208711825994748785601438966129071895263858201321086905609210031222508021939125213908908529472603544809643820882330048225136542116089545705423117173620794331194262901276513114804813434839520485799675579441084076190453568405057800378278680457621294179686348693494179348062329204236294081194645909910996796833064948027274796809306818341991805796453735176391789161701738810296934999788202528890260800918619380577440212763985766549417780002107875051226397555802227765324579552728325779814946320783384860679937632387523468027099024766308120386040341140547232665796933417218718240567433485535424220553928200576028916357557831769480912495930298280068520333947682893374216538852476725604673034700922211562310615667278104835889345016252219662611374499900389797442792304457971547881179895224048739851343838950030087629213851436070868451074904680457333040457909476650951086325851810357203225954851678749310718166889110517806500069561244575108612099468431504643620319873653099758091153855578516879841064217457448500815121315764571582351089125049643414656980014611413672412173496408349627960711706819529379580463840446161223887672609158088763926786218311085216566884597226422829821077463207823214091854915610687002426019662395462871270839282091440777540920796891547189053030370834461465212165239798927504433655220698950506739719117429644249902015795437097810704854324922660890155151971785459006306151158065548257469393567370966866296508697630208682250244859832270994267316487497304944485693368491434374690896776260184556321254888067284861019776904379025728132236008244795887344684738216697482493227639325816601314105107119643292449109258762462862006898972884178148390522355571892918079851209079927925505360959750994906160883142991436563323675274742179728275100172099798222101498212947417259884615021961230393127541513336301375638698008483945264836074129181640113238149448754775785215456371523343069231005916861495108198381928707841840666800435536343650239831025065100195136515641402905578207804150227409005222937179902998878563655934946076330298048125508331937683023956990802314633999449204546884787768861609012107015446507014985748085905002655601159293557421495125133481643441022955810290407650589488587901090854998623255831440853616985929606851638587750121156599637048795592567581580756531598206265286904820443510231283117699899964061050693096406702306855817873602298301111224477064865743932944801956639789185609537884120804623608618468805223139282648955272577487783944535502378270648577973791524445063731606706173307095288963294494883070737328158665636024228853071502530135831239842004477842720197904600039388991901589208261136076015501574222107216622641254143722998078071550229632162162326085484312747310734578066186132377709540516484956629003088360307632918083152048012768301923849123730677065643393166831868718379858379890851574041773162909827427396318335668979588860815067005351091818206370363776580059817312867907714433360329101030687107426155744269146693997914042868937356746108953250716479395484698321020905904781966370308334027410800395100389305094915933604220573258063324667615920673983493025218620480334922466955532754994414077014223065211090229807117234727261918697380123299937442703999924570960021167983462473769090571105512755649797358603037327384212379724153266566477321684471552670515332287344847921605151746778321368092003399173284941322179738451518971336652811227436001532912960081530420590964424645217618963425037247555696072017542346368670409884181490083354573075039464577376496969589341415344679579434616410294107484189510283468098797898531467398725548990668081397691344220276491749767495470390886459932082958690338600067323341210599177629738988147575429330345599384362692435795587766756311363644211971294680619109442530024226962459376850833108155072499757350244786860864893715349541722493033275246042226009897151421829697234733763220118044745167483390571836023407324970318879658661630253535416843290283176051426393492346513329151680584142544831665191213691131031314064003945516408158362861363695709746544075244628623948577741108941864328288758494463368825165423137054060676774793899327741738202602213601455660067748487522708490453823486112156453530571000405772308757632011883586573102681412631444743534145167673949291132061913430375482276379296505489705325335213699265362342354113543132901995220807922735253825142948149445924085159333953457232720643290693891180906271649746126587421411356697700802304135599849323579414161981188842457668142876192222278940918773893848003157571032917144431553690249172558447534615209835270678112541537420055890312426663672591970973764237372334317386873915974239148132176687885723804965197602441493652057321651378085081881650443451070194120007029312252929306821866470911891813586705565813373667077731075450259411696553854928901611869708733652123366509114468329129524680357144845765551052794221196069777016778062770520232326990706022865151962747693761533168074956284694249053736250385597202788371057838500696928384781820382885277127388993419371666490983075920033176648665087013353033672596075757069584613963072303542159255500358108151817410890816410728350152534450288547985042266814342635672805354267494499734766192259069453366301573966179503118499962836049699998178410928182427788403899319245656870500695990833245427384620371347595578125311396364897676554087576097274255046672156496320614575109988606352367082244377320156320423386692113828510780906953533832287156854440908060499324779844616122266537057512188240009555950265834002035169365213447863137502563160490175747951682881983504170976031248252927430638639047099739371336090232637913691957664778079558682489119660771024495831432348736490606410592211286378097819669233726000266463567351134494048267279170278332648207610420807874135106810434608742970601967853193461971035841376071320155402849447868665182725487139766373688309149096792082663205203094124329572167078869388579748211113432138962640776230788288050149445328070039549287163923583854575421752807094427839594863425846061065207777881669563708312336102725553626567490898501105726858055876087668314000381751124811107074985835917695625629457101186723683490590418338722133193692686612179044226736593916903172192793328578610821591826507026875248500601790906424509232716165758484832721994985715803487212549956490477051293275902473759083669277406840525282081306173785754397743410805860009969356260652348395844183947907581697484588444945576552965167010660170282574768635606905476743907920572928136246423857455575221767910035985568996289912473046682548432542403766219264188451381729286681079784507584232140104312397596577545424684655228603687921101349016768027777068619316780454479962620745269510692006648882781626264871042832578115960835413627595001170013811932178310223065716822570865426190477213155149470382516012673490499014356369588016903401410303837992266918385337932589825087326071402714318796715572020010765875257088294414209821682832291716619639525689095780059373898098599877654739462586687984860137020180109208186442519503998145754260641022475956474327985823555956809311251148969941589784519502570587767903193720492380698617091033429441578305970763551824772081457488775774199232109417943692788501463820547987152868093456411022484377373649460692132910500776196057473161150458364875422792431318796988554750407282001728427978203508075750534530635623412798816420340109145956126893050267653823860717720665181573620494139470221916112459091624069928258886156790882578517667878686606422852403446339744992197880944977569750203952527143876903706485387678267250673209188933998812651442416219755271147898598867615206947989888594054672784831630187196924576513720257664404701177834566602741768883572584211096969797339719781557097520954556820719157692987395578181994197571933765767365775899329181679889648085705367224264108224213542587768851546010984502988066721364557678735421734176749054654354453210038414339254537869730783528750871191448351860989579988899822847051845977077385784782344075419032637942995556997542926794107489759304125028249451827768464935617617738271864864712484572857124654795942619113177857263364304491610145217981554957979984192248011248788849234377720924859072987535266001471941067714248131330584466919599258346139956926779839102364004598108977460809969872543324905470089285511184446755812252347456275464929663659115242026594608221521536129406652163854279810749781240973632521876000151415710964586377287886436314419540886790159177685763842523753709614844074381269979401082450311698733456191565046121571477362786677851024913652812423873118787460014431622199658295761926015305218396456457157880385674000077711296588340150391801408107593642217901422848873230695777693833474461790494706840205992252661667695376148856940257104990989230205425546397434521443513918552107740155035238203429355971120051839780543539193129078736646234290158603346004386699172468750024291919231826144842682530349192180171451306050712961384925159678014350417687564224718287541593114781178899175129477951943979719887876451886727810850260915331709659351728602197735470393774015748855792762430558034965828965471301017423163649077571686905123479456394429424029937940234650519036992279688716329365831150226388164083556364804691007021321831135178882038405537566700060137177120435200758690380560668545171808275601934909302697702761023401729557853351969184379377118243178997760124411298956362202739455705107673195016559856557036793634254108106770293019346558838153110701409375438652479999221996794762677548955031442984907752090730416865449719121591550413635185593859628002772067699947040919865474366698520244886043065138004635665316942643387432106775747066835189310780056939052603572966283165652931323895768867258592945067356207632243186308201875357797370821751104002791510603981278464652633034973314009009862504148202163079432178611841662403519764287745996709246969818625467979664708777424555790882281559063646088608252079820956862352333888413997642757211652818503708687629623345991120240914778676638412316634736216027357540967509307239967649559930085785970688798793616212101121218972842829901211612719570012452638843468709192207907042118831540258812048434770859687744873045050363090885109137485762511204194047989118867247448883225259150092951520554841995223390584834227707222272603488823587945177809962705891168699642286354978793445800672066503316553694230605471764373941681638419817201365309614291494808286696438602519296255920702314631362605933522801144482855451904632692476537008644252125505074456808281758616791537199848760436138020125462176456297437681874352231810962105282346445711514302557194695960708819144135120226755097861657374610166629146815038844291909600938589883397773095934262389010088312406051765218843483355419993321293764830788331013669926750892800195919288657702550912174000547085526564478735979150610388783833653816514705042176362121834249951943316683700675420454110706979684553544734075031778818162058234255150102186563834205213571608609908887714037955426815575107126562763688142116638039022526708683175933204223019542988311800562990792511078220178969948139529559247577901683664370544140995510205376269166929595779734891989119497437378803922966542835504568849782983217610750937765528529083282875045278013340393673422144966943371964593161499194329192130302372199002199587376232648682979855177877954161357993131407440089724903877928775817119143977755144744223733577585653616978736336165434074074546682496411553809469335195160035034149389823145250855356575469583580562835265266352611878881392304839836415013748581154085386212307012181606663668921348081287650676135087988559497659850217208024540840638770390519029714881986721654491440918942881830636574957921721589615526019986041075423342858667342614833618574353925218725245154357520853806800600356762771108842290140154012293215964125800741960091132794634658445272498596210844128007424924794571024458942251408842418119746019366015422679241389464378051670705808168177687319406838377689851488849135949373675635837408339800287780564637529585673167257261242432661472097655245322434821411240364782817726342787047660072184580538608149420183806687167823555834800426393843611535247491433266568670023492349628962372811390113253448464950530992951212666838466933649231574844971665271651137334727087763290744030418878857068176033820893723350127129850361704161266357197180216343552195749054099107471869955154967652014291332424974479147578648705666395004841780883255751405325483850534469319413522269994025237217814594322466295991208103225364453132086695949518592338545188552442004954920840953479450205864604570987620263524160346859635219782725559746427475918903106827719300462273372222983106791789983814093826989897766053239594973401494538638915620618921654326138339401206408553284457603309461069708686407878992637274246929098496455175685721233135233949886363417831602184752141531643638000309869802840753812698642996209077650799666082454536210888173531652347518369274717801832940193124328538937166188998571275223465989420722454344494196681256134218529318658877091046694217090023197857649879916660203152913231990847766621603868131051449878894261943419272725630372074750892614031304625632191241804745149054613526470185222771775208109004298307644433223485442884651129759337493725108708219002878721690392277856264343205819928751571063457586637647528081297341995210418104920754109838148174576121887834011552099977502610965647194334707911103167403313012068595253519160410496651793504131490735531815969027082459007549725763828954693697624259649067066342546762427461411959105669018383356458245407965445303996834810904483541085894633072742484651997994936439741247021649758156620397964273911344905104848930554553017514790375809980282481091613672799464688754349785255365017003103386639670014946904429309195444686368982518316880824140950110689436516563198714441335367746141913075927288551090891246347024279779220654466943977391528265599690535212529823671961497946422781990740121987980162620741179061662964785266223350448006737248094652104808748022253324316489550289557782985448547457146489607295200072796473810371757020580531817095364894914971658753233634667198854498419677481547667991638121270981329543973630779711928447269372609045745331185563330391619508878450177276901515104348344024405144081127923905562971516323316965089229043696382820648616233116361405587898906815050170739385155456953656838000730077313114700193819895882381317882227761841115559386857981605224504995552083610301657458526061525479124739431938333416823577562656458675860773049562449105382173213090844506133423033237117059156220726146737551856780104519588151665644215748819814751394978355177268701623730439016612497896324866548340065483556222071271193643154603077879344694491312968659527010910195167599408202651052574666735897664806716734231875731917660121705087692272204359481455640867317571652000372662561377892401010623054392781680144896593462559497748978898953170853757919185428713374226784013746955163351146026767599669359904302949505983334802918558467114009588922838531361528647746880016924116305423383228982384301720065254897152616614142612970654022082099177802688662111084675935231664579402540345021434095700374852142863535936404364771130185773391222025950161266803070157628727885491130477714412579903601017464599952151362508467464693467344249287715821802471676963283884298979430282293644265539083193331755743540350504197982315702523705564307249158712063471461391380508131985261104545587468238420395896403134293873006609966667968670288335727884660066593211547369246887026287013568747588624133746574520881346586214967522745592728698260849323330142661454276205887820841473691784980061076672566688357873716438254172742635928304159538494760785461055002108887940811984454781690271021049341954953739082269258394110668416353994473959189144244700187669944964933726349219303289491156534594416438114966339281490184961473912505425940182004144720940510879694421997764605252118922016129864526816156868376651459112500759571534814770704832027720097256993356118839589925511453855571729121026666616073966644444292141493403234987374007373854176417738045758412857045886691473111920246484194879753313371020293982859811970367708622544453586770547007027922763707377883942082580604469583919396015639939916723350124096705219068191956421450536750850940201898945375972621854778036769858986332408676909782361078724584808592631400629374056707380953352936959696024611608435528542329704469538025683011228944771599731174408975717527474157616278905802339533903642938951165433599683641947655385155583586325851179413110407008253616642743358372924835222162804225365581450644165885107738261023665262811829316596777776944788703232728382113848032013746935472624040178817032015958865265652084904070535078090194886960271244388673818407406663925315085697040396574657621417396472447120674641186651373317941828288904544733878220668511885281189228299735685297324065277333066185238972921405375380923548664008855432075743687052749553217277226426750988983593368908826752888515020832497922716615061033881856492574678022038123475445942777530379946853005616160043271200606756409075760754960469294917484463686285401855773486655071168027066053494141281736772533368820577931726473331843760333358848997000708717527991119147718035673211328136989907416117318718882132796827165079877939016244964889112388796171200576135004659366400665879561179422156766857198749539726032620062832286653823271339757394748638904550399448622546676643672181962100836483204849315545232213395520820719052240210715351301669549378619494965446128567931659000958128526861043426847098919731604221919098084019506693879220926251531617050691510806579890999891922278524850877972607258528777062259544087017949656550855859401865208438795356626091322691776608456140848750509405993147821109954551167697218319070418588616959647088624731714185454519963744634837191058523485603238000570108066256823867434268052692740378154625052438448935450134984160809007524172090212637572656065380670031308867267677827472087286571708580398337692887462150879308056051410365810201894266571309663637046156970946701855595158007930672380774127043249624405258679205176709677562822874412289860263586190919416331316650028534575924517337258331714269142620130944890671730276744637283410401894617879889777687322967206492817834579627966666638758262717360201774138026917557035765887892720489690450171560303860984989103117086385090934098218042366067481068155144837120554659430594081592271171956592781495080138042232410036534458682518510623963812981503513002094425470999983706318979085962499475838655074887623581351633593963680434632665670865413143169475561808033571095093224407803820045108851305803057022477081848039184077601145756747046727144022599628756939894679901075912804248639132317682269629088458222672610698772570626837339001720001759795144464410116387706644569279704514095243603124827966873585309906999727410431612985653800363453068399829635700098622381076193077271492572862986620720331515195563401965387935831927190391131864221780753342664167100973103884683901734293102642252239033298256954325439347253790638742063454882350613556875276289009813672739025732360554675947772982590303854859679015606870454878765443773653249818685684712694168049111322708315277811776975782031714631842620036654492413083814764719718283630097690668592728149151288109248277914749142242724455816828533080824302313069716800805147519475607773123481917817651802563725463783381709146847227564999293991882122360484867927356915348133645566674221043273950719885005507592388479325000706768326777687891719824734597149835149054905225656661758024017347821397712197480609422032937584616288553615203180395588034921248588577796686283978194771895024261102666503865820506049083320873652235615065597629076169805732244256909987067394318207427967987335364711001078415362384193662987103190093125341746008730109348388960766884082480711237243920105825398079369068461185728607072147924890193708209438672822326858309598034567426521813026676013713794879861534749203872290711928342010192024097788893473931655963358870132297868284673523855925490500481247286369705404407009198926821586289186071703313141576587172426342254871266152166261069825268524757213556643541306586600249376081346027932895859860959219435815921910850279388040656459382087467795137158043079137820888822052050664364754137918655164604850046629946568540285460210934149615307720487671094993189319544872540005139371976522823514176863805463747480124659574567095692514746409196263828614560948356060709533680095728183528336255744094466113524379859733211853775177860060344477049841157797513741841563234359883805407247502330494724913121281171382758825480884498338790901158917046628234469240483888069251100404493217472064854763640263863772284526738134289381431341270394789258274881672289930458980012514838346584560214916407286527917674085216866690641160902762444319564277371203197045113549078827235084342665985276944211780713774221190779084569422648044958869642113509842030299307832542988110329291741718492749180158707094302847939589955378391641850689069357295907084340126903467850522554986713961053256577059512726821864689860844167052432481979254310340362274543637400132043082254398752925093591588222848592495149337154023031383335007731219829898323317294171959047259663389629547877684324127701118940079462256318454250584282563484192938826498438611366862660944465485575537277943341292911962479547340792589457472409739475278822175276939975209181376158236091456934067479908721373275337645659460573073101108690561936836764539055935845839917369436375327321025582621374984687779611303296187175196697183610685689378094194713294467359292480616895947247522327620513538117295883093883083864393073356900306470443578873944064312946618863381855198286984553983803554410581051947569307718233082156663884371140122962345008263435735342736517407685114065397646915729639808938828865833498350985870709301353174080542211566542471713235901010120012319907239656221058176973310856352624455544897017316065535528290761555726604656395447034740757060815383706502156679720839676818492776591212918805805193178485367321050416179910984827076186769651291611476999382798984567718903371186877391401382950259554408281641355452475970836790209528104066696662121808963314006178731112643933301177356924746282043693938320029043426189200108488559952241330973181236959261557253626894878066649502532912418606445993926007463467110653379971113045412044928584121930990962526360394362163321136543005876349203377740268106656551705145671991283515419271541036580154835491189989429619181799710052087049455156176577046213360746365161051121665812691559564765599969829820366087429738672697987818627702641342045458569544594784384779319464793393206951252606378871053484062212154916768648068765413955951420893762273945917851893640107780481348124730503357931010493123640926835978489715048853265716695844900686578212020672766298890097663728129255267936108861636375253210273328573408883581393640453477458270945326562069842301349359312865514795597118074120642130741646780172869409490584872463850086834747260546306480461895429925505664107332302660986763743503936759239609162948926122077658775836157779098778780475749016774348481930716144808087524686867651187550945263673324843805258594212932862881063042692279918458047359255703722951190898773652017389455053672587306743088418028810830990440366092578205458978954115368892128414623528765365182903038660320110655314467649611589221410002216466606235235409096139639273873162420380123482312583311284826724409465091158168025656535461228855259241094004092268087984680064649711788385084256405467524403747618058808054654913759377034153611747303046046068096450983151193969461658926063019765190276092174593394382353482819545472238070713897436279868123562249701193615265421868524766719624523051187522317445168429433854963453807605637031083576557738946151269204909034256468170702212939007452561279511537184583800311269854928937040536028757351929188939119713380030564092383808194596361126135904406590290833540515555631937467102092970006150453783351768323048009078347450272164615966406645689301867515524068193698761362784155893698042525347056076768659996777751474952586193420419863255595557721541898251323743923036025684606930270584842443191712228571592226022438690661249128220046437644164774286161519363075819573594888976502915726516542297109129672670077899670812841028376887601772904337472441645863769649295647158948509565598776134769578442907851611443704941911472939846874062919372117019343853531913217606600825790669651838027303127100895432634370927733419016984236031064593275578391540768963637808076533209733260221571689086724300475601817278877638882893047130491895446174145533637532668616190193412857796859245366660737347275427771176455973512485880555895234183309198751061714051313760661553766350013170250311799899583032837557799817485318825703781662409135180512941917174944388045516085454294796699039979823110570133458447650890794387977270830112503689457841898812463429548787083189792828697484857344393962765155841753012859750570248447013310427049202328953564032520852573694297335713870235094528575796730182086465281558568254063695288096570783460960691421876655122066764614240919074902635906669615474294671209500815492884849247270756448680367334717925899094319629263404600802408410124337915215297447700238321426100901219385784206410601508454919849323193093472661930159741037241437482245370682801742720690004436521428284235606133221783416312622277401127382615852708689989374754696484110383255671242943949171082927272052421803933312516739308901980174967083063513588628159512600916436966918389501696325702428121403072089115472430406723868614432780284027197877960399146991295927279812063279277554553279509793967216798319040976151893937411747607387503671873747225380004100472847860608712089989430253385562198688015662809065084025122212854908639045180788650956880027602192333914484812941171653001361878200263224143636127256837733266327255535535276056935052338856408314571456125441895315659940222297482463404019394080345233876322984566101564529712174889857242520151353951439032473162336442371197877996146138011597900021394762944953970117205798369675853322463147040956633649867862075949628133367510888785484781182078364054034321470955035066323211468065608079666612895871803915871015044971853520914984488344554849600737897867939090911869706947577841323648541429130112161832913633136443444618895246157407379282219607291798585789938776623303021454127751921841772384704735167797466379634812445966894930807554197703172195073983057638420214776651398616477038827609638630041238755702244265206254544027203039979135034514497923402661590244398345948685109110451059845019940147753497933054056941366997018993137173175038824751581729681893561742234764834630394228536686282979293866963286381692620980026178358958343414729211435965433779338472536997076683154396495077419990130275686152746110695409738324246023221547695665970767545461810787068034415767436616805732650056528559963323454106972500421997890024909913905463931281079423351389663190516147400077422787104299415526164294744632266273494997850263560663297397117278533405454307342046264353127711961700176629499845312619780358064684230982266796530513156001658469181923111815978828033199046828751904233602635500751354161712585159631582045515087639292813827051989077341934357027670022032150049976245817751600056152155726395434038754119292061530616934585251341945314198510502968005903436196941567653646925164085446305013318443027307948531884405236244254693819276695600483409317995306407130684529393510567247562717670889393111778106336413847804614396054206417457115953416724856532843196185705984208038236782868252231676858446699922215580915297655725954397912867543159644693928232216378201588268480109455915736692330179749954825300502820498968888530157901551766822024017056434531692077017414822104506743297645036880711801029524410606813818967618247704508829564377144699441844263514011290825133736815753572979282141175210618929331717319514202017823328301509737196144020235884597585545069071920555879430366351030161740996196175329474242365542987071758976713699951036345371525808103680314433872211666814975137377384406539393177920537264394313874956968992804013602555469893711728943905162586118600739429380652658040593014911160601429166519325397775971548166712309951642040826041140107115454385828630403888603995023164067924667102687560299553285228141078104903464173491066822054313272995401172097433419554252657276289408398623838278753579127072273813245934425405390744829778578605842224153189227214368708693977230077114153379072060926169652102693674949915147728630188197702505860383373042688544116087914965829697280257801770533962308672929844245778516850566070187711485170584798776877255843305810258712476147839164070701071393419976878397866578900688842223031754604300467446514441276031757200444565456774020252033810903821796031511546663489614626443110362977336118333429338937464348004741092507197835319785896285643913614654226981801125460299133913247491135360781892752596339669051803886293838162043972794272528435044929558423710568957062681254797731291085928879254541324616188626329337076938535140330864779869052358477997319587226342176065100701807756099226521257927682741227061451901494502771338080261916006030159374640472433368103130199307428193900738100440884067149437905517126108649525964500364789963190108399256370385664672920231162651021126765877465160927363135022102297288647023353164086747640691265848063006850268984038665999913337221624655802746984407179625568944450595480252875263478460470141719964129164888136786837413230352126669568219089086797567982128219356804720233801312284403157979270680857855793338717998504272610228007982703834512851738445683764494983468323790411310228011372180896777661243249667091044782517469363262041561920419094673739555228938381799379280809277385053326775631128573190484872391668045178489564860828449161342880703465537262168176458260856512107456231393281256055841072365364515713431866104478001977658743792202549733859217608709183561422263567364013484967620848350553514561900799278749705691163341811740753114226555130399903867522048893758057924736465609877842268579882349841122671141936868949377688303690996693408821572107861069317428053076468372813220633841855913966193562597884629326885949196026614748610794679386735934634274810789430357615987788585438168194515225774158919341062108131757758919572614120177356894320404543604257034346345024546053286997389375729323797507434526431422719671976940447937390447956478690768386996109573905665447317706297894282352614227251861238186022955685921157583976496655481282092047969299734576422999886359993880157387844180051759535225732175917204264924643770447235476795814376160189478018054762945284828191556799679918278994436722459515163771312368948214635398835201946659781874142946855466940584961258649499789725422946132159543900614622012807777848280480633875812733923128035786679011847773225003779956551726217075874004170243991942543481086514838311482411251568608356006745146999639652559228723808890149813198856604531892868251592539701402455168221274220470343683739281451528133633955385368888105515961013956155118918920916362568509150572440297380546928220681853275665506608729226043907443780546806051464558844490416380833706967394752426903219308977285652962083713730413625454163661514427890422189227087412519817825105852375866411056538237471462671611543956670835260904369969754261108092608949570904967401222264195814718990596426145990327843779255853214450068855645725894059181490555260819062357525861313201083295507768277514946306623935714277329494724887766161020609888973811046655647392438483091025639410552211329077781948918385015335941758268617385170760715665772222057492003943045317824201866216681629485290913204010379336916005868964997753707766292170778493951202378094414848870555551341043756556498191314074160152331241425938753262532079289778440266377652093217041128514699918515105715780680763051617916875492556525015033602225455164742033715793197525118913453914030321092292534994938207464263938856732518883126610342607755643480664817432409281027063807300967913826159837788776588026511054406452989140258502562472417009667916344512136918805331113762560799506416734196817852414381156567380527931221621540909614902556292433962516650880757263943496290523135857025431862620469298787321122502272680933779235966705851477820219283224047373000884111407514616628331586118462646440469017225134714680397835256906139478650897501589197366649459209406880601845044927091396771451460338275982127290961268080079898505374699091889056671872853506966109098316483107333190152805732456460739406787674500561353246870487173366129277962626394131506218668776655799291442885426049164451606468824341454171087903703360468783465944191413380469030080367003602492933178163837910320778592335155078459110356706333992754544991179697441747210213178920358453352285545223492853605099040135771208648156279471222812665705958352536986952689130219710803839890762268209980054531873904108677924075367644443469075741731342869345754438468246030269735602093365815113899061967398250708122619906080747112872223371899375151639201181856491678317622180265946179714976175792437630163602216735557879628859109241418784575529417684745751023471611867393972098652522057296826678341691880899049250687554463056308718137601912426240052158538415659114887771115539956425490951077916182725960690994951292678350824810497376023000145273199577601918683671968901926395958252687235751560934355356272140648109730850365572990854908395608972626903449210561558697150332484876034161018721508515840563499040303736693051300537349970512446769221671320719186910274730187688374118036148473721514407348398165093515566421554017996563258372223050795117203902204142690432255321706565869362476538823416282130731105619061174241427294390064791221025874466081445406038160047353622546770285021571518863867673778339331335821620352157416808846481561315182841233551478415282218232265223163697044563133171832590911627942458864145419474638694189549923150239260803226515708070444373961562262808780435585188838213030355414708106053047035396384432731610178533719881102306597495844047080499050201561421404417991467269182882709574253510513678212592048821254024064916588407360050169611877419339389878556209966546809137161379962717456562907575946462290338768217965640211190025964597082655123175346639248581070048861862440086383167081350686579438364303055598893236558063984267731670671718957790436864243911672245785137024290394694215839837581941226558339411627741291669630589330132684646144879510385606956591347605508090351431842868857755425012020218467229879008390099117796235768907780579225129350406452397072618893320059787785640031318077514530857181537199913782117790053539953559052282024725220590171085676362107712972517995171137854161136958746321299172739086270408332783788960679125583656005666168962565229630053046961397292949828109360982538255834414020773062941716707435858678835609952218646117009073505579179267420309515278587298401861461948545818224001343309060713043077763983803540474676536302585612643962016561173033271826809998851398766730522313983814619492976690684513717953350040324531142588431570220393922351948899333403162873639498686078984416522593860624800337379902165505796072282146091676780331004254158899841968796122364363256337402776715417096065852623225921684702181019220058073574307680033936864136085171220237195973515406393525531152479982086049746117541764868077624380839771253206475274455103940900430535507732466037790225334035653264429682370433758288098483825690585418280665578600630750589938404628918867838036969931340993934101983368850941964089603418184935632718148390813570922844113253811210176085844135309595642026520072425591335767205024116462793181466767244170060831129805554118204673709278391520613987449806905572319500571098119679939289579918497410878956728767320375343378675679661006380512535194868525730148192577949497766938415392006194632376704670003528289052365443192094224605548780319695336361571544988294811804218017294252322339002566347540243264365636807796356939010509054233059430056210415747200924905498387325134888480576378264965523656566341997405523161848903293809280600897553362327822037006577468151810140010975280588415098164212230097565225202276122366227566696686167511738359604739169253547979785941286000873023285872008297920542259450366042757957879218908572652929806720212856369680713198521384265267553059053241398817525456108145299430603924174017345498027665481315725085932265980369581135622842466190311766730681997155151374874293724783840355823893370348296723033595878580365274564233088483949495847310146506846356030652773407973690876063985145748180730200755806792860169213432540862302632429194574582361734273847749041135161614515286892527767502072870714021205553306216360963086539939933165689002741234181795266300160180821463814158551337457096282276391054670472706370909562523712685382285303050719464315031499085598779844413330972387366394008760600237221232281257157373743951514646223992858975323035332695272595859913781511544401745481851547981518897378617439436189850711334868759266978406780724050972373005225442350210366269317733146755765060712145680942685394422355711298386521847510845332878412392719886081653854815426984400080837178635379015785072002053771163505877004428702791301060242410872022248928287844038660627078576538058890713927663913470625588093168483017443889085990400767646187713978627647383044853471676115026892542268647777964553661203207510508776642117102145194962768315962861040651160672136122523272716543835909166646632410325228737792563929620053454370064848541062421593400090223418772598732531184091228489199140549773611346116096095003281074730804463075435093997286532300866413537897408131335793532487867470181464376167065985511630805735194662613500995912473789344304831088386761824679954323253100587467352116217673090746842201750265493842827140759080428696725885743224906288794784556551997204546144078525532072837945539676365484551479800558214364490297065470836444281407444367527227472582214572458110335977061708451617763965767638596442635035345822368396651492389899277405797622615969642200847558800835992674662524983577478113907358815223267594567660662353766877174200909752291737145303121070460690852354741074923988455474652710954472646993826753354919063061932706341465197736061418257631730341786807872526800408335436496347703781474675602910505072122475782230040325339448658712742851635281550349884989504328793537926756675231794912177250310408883014734817248015002791901632878088952774177758230318203023747993117777100887503847432833150842119785240254421319315336037059804494245575550107346408643981544910579467008025334875623702958527467058921601172169324984326126208331764712216055895748978327760214312357416624846952512807112550317470111111425353409259395302171731687335932930105068174566796598533249253484117731317451320317050258660191004391881978114397197661246149208330982916119861063335965213197434545300628622427257441864235539146061827945410611089404287485623181949177348799174314152828550140656073004341952718741972045251164774652682378660515550128704743297723023898030422472011452727441404876517296424950402778036842081233468092685763268683995595224643340148276736558875708066969761408095075199577825563023024705057101430336794967246723248499796664399091669896566177581974321956768251313891887111298231241452051611415849978857122373053029481301784290337997563338689929771580654654330957277012382025040100342772803043470190001506394943359009376185357590900492980708088331622445035627569162961283302549665579129704408967329861898267231783898762657116625245337953567020113859542948966359365239153335063894805637394251077400928933226477604950565429181904663510708872637245539322472812949706339692340855494902515733177741049892239355072726745351674000434591633353785702261940060066941563132796301606575281659050031629755595180188511813859950375404551699860524556429812882074262207961712502756776156428009356288261030266968529727551933591274526885555724184822165484997775619639871154219708020441105175706242523075266369623036714031868646625343403363876239809587790854510557287128812455595786974283039868845722257014754463182303896614105756061410611618355440163403904350416564344294478048305891502018541279222920200293610466088693384231946565220020480991347181580264878980955545982407311315031789693563539521784465523844986690523580296406983615063119155035577421042377753861284173584853781544857812279861155255513151468732366507018015976954796286715022602071760043407993684659006186651220631315631638553207570807813438288947079579067270436752745870383387884444173789124411338431743855123833695470643108638257009605208815699446101999622470814490099314120322268897413466814863112843848246358998890263610161785837481625910456831438974737367460920993742468139859145056008467339498205747816856920992464860353206685007881322924500658821994373165943651770478579085079915149005132200008295755673807837694330094215324000851788445147791188271501248561963098411328969279948590776457647062892775618141344776754644639108977433734820274292067643709330999197830735725586116309728910411541608941030961582093998304466886757646224260809585143237542879929076594519062185932741694876405105688679395894898391214865060618564218128603853694887375822051170149654671480429776839449191458672139178958200788417855163446580428215248371854316846322183083424952304045085455255977614348783202318969349133228291469557794755592794237616653440640155473932835548334340866120598865313048705977974441558100316820425689063740752641311636572752647905683069635528709284439964005206193635296374386038759528631371092155139264782903951811327730584620951624474419728876185320459553306792408762171977601819588279537642829829206639384630398848945390763621699668201835103669439521066237470883757270577739746361676599646017424731552555278641230009335437869504817157063095586867104891672105869752092067093116813966965863631236578850325119326632368346685891014338986312817910994663783796917826204801013096571541347110137202020333498751853234614994014466819926227393637613038648601891228754362964204850285567854949919909203335349963456786797753077215586914136978859889534713890462623639602789971560230116181462803040254246169834652560148648560796489412422888697820409971839333807001211489673703690266356781534474343851072887496193560432565740946047663962921782646200251789285035269896290228793794403037172610902644681938030067699793867088646860108919341548063944793985389046741228416412532133384217497163379517998209199780751846642336554805492664432685773108593829839049369900896400324634562310338071326183969025783050357341023267737830570680409654213541239434378811525059676849901658659058997838772958068455891325340943048922177905841085245932841100057380416407624811417252828591463410225928281449897058171185970786599139410380103672160477286744432587838848498713377302125448162149425283681705074639581261692943138206943068584999357562207338739167644664984771267248130411083245885468746220258334701555584002378645675256265656269245432168719877960487915383669992063488957490531120932258408572609550746891004362205596897668133782265322686169321290520794882693833767942839999024082064395636019363423313267796898498133108625592916507262108340798500958082660030424878064896479030184169105530488826024756226564775941975296615385248040615549410579786264555686227965625496865490782828949973553200022925049430492482294448255788103292764156314077915656694936373068021583567651981063676148161425041108606725618069620119750978625347357901020844550713140094927032807639827020514681315132726319684091615868872978984334324790063864679278458969718168336668320429566270954193945843790011225903479028292624139547530906396629866197660160000164150090649006963462865049532968164452053930482917234183638128536652969464403895205993094518989576788630241263500040767819221087269898567867950752016805936401959195915840431960492213109983493796943849829104149747996765154402797590021045415943644690368494618616567844082563133651205135985682989872876807247326502655239574937124309306390538879474834706592697903578410678984933003680997773516522826025468981716562323312169989485217398311772722148983712035917168058130539952852070548420058991343663546802408925299376506228454524360736829080503325007852769337081924732904234281493012896941864811909043131197465574943310573567815652024440982809923865051159682726749574341905291334820304371489676609392162970953748719007420188562017986055616269190564226014660882164303845906713459197684238901471988595871463149208651058077470239117253310876208336773199171047844398716469621140253872414886874875260566456506354699501892616743630067902589528106843930321082222619861057882043846987147244018832610405047682213053978330223081142262531877455062517932997763382025715128256237361905335430137134343075578535573951452553034430497763533070278958625574567396308634533954616743626673408005340547701037536933911127017808453636522016194777702134532375000113840735462428322220220763628780928983790574500665649796239960245294114023587029777390634922181136626298693161769900244667228626771869346890899316137899070975751911604946073854854089761922427021295632387827265459557538154700184721494632064491556243236687123295007817124789459531466519180118676760916980704599958566446672876426522503443181389823457051857264634553344544079342537876811306601497906869082813212359001077536851012934503293689428275421821628485381477092030110619301665130324547925156782168196521968229434647324546308360141215031732052510817878419683573115655490752634337027374264736491677696849006577233620937254710252830635850518772087229037900466793681603401130801712501609934779977749117743443328941146829832538794495044615846674158040746915488235046942034702162586806818115789189995830760225892247507604615939282840903794886663105326169463879884992153912126861839651246854869652058352403411272766268374259621192602181299104267377263347949554017356476305165816491551886955653658580481521220635307206286955747776880411877761199188084211075334859543694164539167961674197268071613800777126100868252529409777365241409159349885623483890231750833460791294338353127483899831925725173306560621293013704630420487769883212543005008403300711941305658704573293572524324032267611597237818500399358756748296758134181758668992270693278441549347435090964644036532116215384948823567047208578662013239186560743334981335513038794891011722786509119134406469637737559252041627948623220622097769750246401933987254841417457630633720450226706789437919301828757092694656496113819388769480210636634477694265199696464983847632183401823075972219109139692716532390773781793928811493057817783338375237655049397607886124826415927752030897697850195688479556919528658176691856002470463230454232510740002097093021524897882835937056671681022801418954871081995042317667009014414533684777029384260155552946164226771175619635246572768509573971006930712677607356256844545328562719914094559954006286328067966025675226998433555477312218133853886459833236378354113101304476144810287273428993271177692934877457142997606725443962798678677046793489403895842191963283500123185788284624159814037970085599819446638009630023759698210251624416091063162026391449195660940708262607485054036983116574868587170461748656317268916463032001112633695429919360312156013710026046657538192826864741359441271627635161844481957277021885161586181854043604108037444457295139585360158400856596884614495783438603571902398874739558270155692301309164529028211894219060185515006174543096976109870283294385464672495560950924269254755354116724035039672506977083324150987666205250814349333198273857024072848628356744219786426037075411639590207345663008093332669734218188815605482200125851343653017012852560317169652612872982407336870807500636714215746044674849548020517686360742643343015656161089146924682322431369444990896956063538114410962087569213498302049250398127192686698770143832122884039940098955143091396203746173877874912689064927490339041081381658085218146746070525731181720594893860576676260825027636121363143217095383542274608369211916143114753279869079615572165578967852755001673850892962161768939018713081647342657305726503758798355290587290975090640939962981685283594243496071444085495534637634060621274312941596654866336714906856140053651615684537571558578491004622922449504922914829081998051942611523895334190042793856155057212447134077871189645889922930380785373513451410904307914700702615185471861453932226943487928950456914335127855803291426551870968009771919503865963968316428155633923479989688088003392854624898709986155032668491708802526727838506399788534568520916786258173106817124577556407181271347586241721478634785537456620055526677243442801242759290265649381367202640276416390621877791636198510291797134627374420090619933505316941697261242559764529758966612469967979884209467202657434903847892017990155211662658877276116533050092014193196201749591694911592028835022945910971412024620540666382599325094587402696022108296626124970891108940919832885874305767569506841921076269423908647750697765052875030179471305065200829801901434352226451147293777968478999140476717987810752743284874626155875375478264804544079646496978680636895969494801597096665419603379504750794718630856537079720402347667003476225385320933568288381631475633533776704290059538605714981496794919579256654827427051037108303402679221115720392753049214019156338610985055619831632315886297497357474263977941747954710693804078466035802967407546800167105776753822014641453941231414431053092890420987480186297808205415696728504102780541034430220585814480180472999976114823595327239319026030671312743077474673421594595442529187005684369991513336128281163154750873959045355903992165399940524228778813740229277084081306881559554757039002154725194720630846066254766491002829673859181265459195554534392055494730629311643103525376095964793316222241297472593297257083169217390968238819013063126276568262955730736346234738561595878283147685806064603926584371198748585618014467848096916290608786653329210374740676754784972178185264583304880273465044643836379503122425072860294448027638855791169775875698744677104073921066385094983507544459542461786391283210844347374594779223227716427559174299138418687191455812074510040643197180333409097698078492797208271265597410853658595601055214676797399921228821718673971958332086100729930037620207605394521242110507992528144191558369501002722312038759087538811671600751545250705067370064246474917540051047798484516466404157135774679906903120320398636886857575412106013294324911753060695181180511572449547682068817534157595745858753342816891884801722469182164746760823662548407280525431411051086060447753147157856761749638511039239223516075889920680583452934976742745542208739268908939418365762585683716485362326537198456057586526542933829677015559689954220124437991162019931143882148824492649042771200097397870856424578649673562959969862633551168350442286798942917671108524265145391495373599096100668442832687861642345174922574062261540933162532536256708783267358446615569983307782825443700738768637368134811031301702967395394422726382590687391109464607863867251654154504959565941839373923461978117178588190226058201614573030008329771432719034923492160555127508051483074000520060788323942609575805286613651836650050643941769705891960677454526090266608323001274003833997946932073814758732846708899032582614884183049071453939918617821521520883024575384568479502235863391923982334234009060133989805655700198871275460031999988400885941290670616979408911910531310316431850073987573202337579694375335652706769642648683684812959108007731497851709057171856043323246981194023140814693595083301705097017263102496805027703316908977241160904334742577506676751120632478851170712171061210636275174487808933316348796371702638431872468842464344292252296480992137620590552142032721983638830528289464632893373550063310382338785403681400991973285137209871568793977068223026102862841985312350210464533893407677634797811578619900215141934814630907942404502594577864672686081169826478572765211058540926695283737514592277581574073433778903749950509187790704336281848650339659580189927874010200061597525437553161759534386001934394765178133582225453477126221847536008901734356237934714541101596391789118669570099967961412304756383716329615409722954576095343215671088739829024033315552638368194915075365794248229858481890764106912258243686061643478808378504105822828789960211222404608477987924343259810104389282157118778975018877848299544809888361279768283217252669193669928002401109117942793727810505532882428322282189048638636661704205508933425030925071454149840503010924890119398920861069563158371076227172677986687508717716183090526224307478409209387095521358159944257318249663236265997281616561819165716557202072166577082136187453916654862891489530012098661640682636592260620091984684403852611536062156619273652606691920236743152416043183005604039639422173698443832687258393204574952137837980684109170571442275150896745150695663859034258425150893311339289788790405697987447342266251330437406041040662441467709538158963484553456589752654405356238658793821071142398416790326407003792880167170672864754206331276570782539710188786449575595101554902539002116567897365475938901753995812338992667460764480016510118575139518981000392821742876060821069864804689449521464021041813762225108350872301504439308115553216024414348904599964126731007006699767083075287020867000085785646385981289139635876028384898866949349376863810541197164771565511276691021699483195527852736552052406932711513901882883784933586509326947537751165971447089739828844536645321781138673569147829402487286447908328828997360261361625178296468916447268975714283072431033315842867454396265033170197587534777569496905804078322279317286828634988461459833916983798656476755444417501637285887354509127174974052124841881726622496753941902446535664036178534412230561050732218929890675551327330009933394296191138291683804715670291032006912468190604621283072613959116688353638583174549759582419360772726725508889428247036990110138671197599509660967024935341411850382647602982011845353344044983287664789612689344345699448034900757313424374367884469631148382141337489240468911334086569803151302350615016887963664058442156214418164127336201051401868162502213093484759521978251597479139335373673806950857461277287879689423009713054390570168321216555801076125179755243227692224258226684938684613768361430268477612857036683624206166830781747193968695176848300514961154924823504457425248884891302219344008613800198760276906966359947321773834088415477445217841976974677055672874502395749052031229872886365924037553066246427147222623818967919647024876867899000642831855579495786778463909210388837021512238049909113667197179072700416543985342279349354334926638309632491782803599834950683004684546873024167444628775763109296452475977456621701466746636870728988884830635054008057474476073990365188101533973370123016926924871223179861649686298366296445308084655708116974213158229348293774270931177931946314303229655427015877026480602905882878351307233956751436574270021713824815634888279879533949894219362281950789572947961243880712860074967232780757247393416830728138621422779671091868679130372128236347323895082720277007002564837111579458914406553776661998600125038671753641332995826482918767519968897063606376523015190111637042658861650545761051430070742751438015354228068017149952729834233312961410833682516500754197125424521182891193407942507530580079616519524442132714973361427382304120028061955417619826819090141887363489467317762775524879706456468239648036551446554527665136658488096680345477968002693427651655069964403501679651756188188298777812896820633424371578772669731926710689509307879478698477764411634718577154845160013597734406020572395945372593439382947041635485342776986052064837094022074335464279784081527169433163961301149000747591200135325056355048259005547688250735098424949446184315297252588703305264798411120433652383724248091854701931907134675770288271181839887391094491804533223111685833467031895230102372774074590758077690559566100038303271331885374325909095063858594974774364026411915922983772473133857661527343805607648686569110404749126211790978123247810902939808468329028700979009847319511097787845637747857338825331783148158520176020709801963527513299356232111414359371125395519554616340148377928686147364909803112196951600459650758940218806044388072995988623269984481938665892254471069811569645410725254149764725258765503489640348305940454538919542829446850608127558092907308588525678770450502020247686609094420056952599731108839081851558636530559702272733359937839719823467269595076788345746455940914995686797665202484747791876373761130978826848625058159729562013605144229791880600876089834940733295289842772999916599058957860198174892513213193283093400109118285955588125500419913876610743910824831095259211244738187317048202561937520731880968497977568755927314850189711349042208882329841994931635387906846829146364878919253455942008273434485486559697874964160490078893360538740805981066454910165908873225576187530300038093159602503269178402397780536280884221736019735065526853059944539978972803064382094442324207708565462694436212550043459644835910999291192218153892366117815090243519898474682723296475398126738633003516886423398935649516566896896780993421601439821422669935136135538807669451837091897707570230734820590223421882847541207258362353269745825741398780447674609724342144242046565408102032782764959390231752965186357867074949792396876227792946393118570322528158851049302902643492719324038011474485390731860500518818534454294905467998730241151943483495607814754441633176190510004864071318895259955001919933809150068384605225298538883050223516438361342914352660243562739590220660184374774949932159755365825035067486634511182270463700391625128750931253035080944131133818542046236512659655286931683908521490728479851337525169712518273657901567781471057272470094681442492933712487358652628553006273347036692284268802168459919486221063412279835855650348247034106300708411497184582606594426958017699388982737773553600482902451834136225010212774202440248487736494947352860179361564028202677070819346760793490334264308548889193296080237130394790380174421543599502844978375283875895392248575362107904962847288069115057829701704863826895451905617775467579379665103359916424697245229223872402369685743648317708638922357812640812098692079662608332217722574231059152506257013882142029489361618215349007863437128530499737818668623019280559033713113048785205380679000695731030619409171168327469752591999092613421181309195306160051386969907276672803121459048528571193117379540227869961598350030319569755743263718447605201546246356799169501572580174927835259740865236509562939459300522216728379594388220746577049076736444087397783475117893777032948315653699597437152693353899276895276197768363570137561897896271263435739708502567474608112715550169995254286524978332589599815876624906760539908505656050911382299095223121968965712282115961966208495909198745457312867583219283489878332695720628192720857418460697364712667821557534605597552445904598871001336741036328416361571882585000813823547022401851722261881500022175016015488941043173519429272810904621316865890324856269292237804957626484569777801831420027577339063081756083264477125304874454126863610573780027890380306100406537737318582517701111931243084237375273169173375299475993072076121130165917123717301229607136121872847643014922114175827796969338008328361221979993984877867247759774796555204004733544787671448181858258295475910692611785583325698568396888219049708314445144227797325803337540261115865338023885108104742486029082359029926270149909037292927252168873338646123106942567132169679450111296862387883041997451503152234800042714574077641921518056380577082812159816712012599021701057878156695236563916830117377688513065628239723182414163567948001621640074687697109640799335398266898126242011592333245360148684094537174873933903713797365947699172310818887798147040965609217776188173975534494086951849398097340148750508740402812647028601346291619796930286449696256266634007717879471029324177385413027972836398573892212355915661082434585792175353064109716126802192607368746624218599415119292205072501868303989161374838457735961050676420342862708133763060964572605795326441000221907674734989998856515915567243077761462431181005553499742816853865293942287505588213840159381576184855283661737601972747376382735228889093250477741262043236353537459525408660419412228409093910583801020641645441687368655462819443910390575091890635755183410781708055580883372253034678119526285493513822563795908195512396704759322144582946176278931493967666657209420676131173137424362925408502749867176873499281617699646286181835176339112346915470206500326025487969964653624830285789589468363190622545904012614877425101005347994077377495371934765547339548341683514289584998846384175239296541507591002841179099110151153991668723156557813753026312185897300962550718551054440699825842090453928889779091340561264804265975178957599244888242149134101789134481676781204661726607364770150915827073144848174482087854192944121171718824105283341127944038051225250997422195924132166346367262427277468262339741068767994281360114046732837274352457635767680771009873259842827959439272346290833160468826970885535389284948228241142660543411310732716138598790398428594440022407357266224895010258885525554816759567458328110748898771906901406135864069175621195816955710571003965835459710945102400929508590771110687265067932266668240774330308867451998231147609865539025333488791891620520799953571497210045573886648124186541261296188156127278375606548607799106882728288397909375842929215769083322320283653575445026864046760811485860137191552311351338522888003369614760589469921995287717186933812270826273390368380503048381109081004965644420389539227999791124664044986921521157925928822079770194708105323790597992972871202469964382559309405620945129611792077964210904447740565443645843897113828782343615114773965169812654008776222621978078555151033149423520891141167089786754679771177173365521648747158076998512427960742905009823878836836606717305533119579336626715800226801565179795125347524531304020923573868502074555613330332239973558449153519442731170863641729250558858809015799534350674528004626191687603147259507950980869345176395056044570028199408195640965851016077997690156930436774778435528374413321337600952561516523070533459417025835657252117464041265835517759389951771877475393225422127432178649452310803983346624527897978652165865228062920229072555365616547395165164062953902903945103094361473013242326324149544551878372217094806008902135127197029786637137177774311297201610039583050096347479751395767649017082790049157390454426290570559169765751566790756956099003376995320697328068062771206049214758661924059666707304759478659554279740305202092487754524042998663439698467746426902976053636594830334159611054539918189572062441431609595538101367098682102747088893876633417301521721062540696824233598269770010916798435477347309148153168553184667000632223537398786648396168088123212525060865967276637203584405563312048114658874925622972766214432067226694200817181877270855000355323813400417878468294446797261852237891757658749983838699248160649148220808745605457871750279697091959956190028378003893519603057463709271071447991557744968839570228342269073607494082405059784257458753002380932941719601531724146869716912495146304924831175079299314266741810945133677879907866845760286526595357042834988634662786689971655190069862498005685367724181577061563669466306188072586165614912084077550128425860959573141089719962271919279793785707755238205220331303830801046227488001204539455832461811156354558034499623000648544205330863362036404257584568846092471209099478830949864206483972478080612991722950078617387124877623166573577751076016486573674584195081906568482017348415868708570572815468474665854256882244519931141062611430102912013599966471355437240902485245552780806482139008657249525993354879985844307371955046779319052367038964019511577587664365058989337809060058615160127718024730035323457076669455892228932596587420708899951493180707116661790419600618033698796853016743517860768874579846361073472128547211499559304177833548998527895042917481611815368488674414844134806203528939947654357416348179824082951169374438940100013450743879108439860643741231273359163968223408879069947226153579283251205452824779999832158433257623977450442262702490727549122566019356240009944290449271374886775486986024504191886267045510325403550544338686429366157878476889547087055804180747133894203414743313254277607984831832929597843629063440045854277949560339300792216462652495196917978714083863456581847616453594113422312648865641669506201802670566559676431316910573857388616907713076087948762166101019183642090875932948532437278531847582660767918640741579035714171670928764348171491604977915844274674504616239694987402480184071915551322381331874889085335071484388927188388768983877639897578165157349149687407462748357490135509754225573085186193289125261109718620851297281420656686463866967755670990785836879359250137042109965382196408488920379966705249561959261951507674033152828471341440887251177682405941193873945777095608286733340865903542820068486215623021080937823559622185501064145762013516073002577171730881071595687711748013868683681318408318061159579328667745479652281193462607437555076332808057420912133046220490619918781856513587131095137459820656825964252047360032916501240365762382875010414795289604032323912959429100409316460141335435407431042352374256191583961593455690323699957201616180176445382830964053502370671532918805789143261493134566365483484639604349522846260910159943858525870933620865355654322430628533965792897407908238999445603955097759374597920341728037065069775364287589300848212114872587505817595494855087906053522457596559515791364208725272573421771147318108498198247632908072901513808763246202351581529302959625626247699940142286751974184720708655868713194915633541163975202500640628421638051849951769324605878208364425601188240302422423949181268683874450464457022405342742406395038584191951528799763822836283912093251865251553184344087639185654794780355684737288305824292978984776750667214147960975933719286952607452549426898909204848420634998020217839578733730347554498014870723918597242207853985677878567403353030759672926385405248621680047868385120711048804593499791058317259607646582824786787271108582941851785903272162171126787503249104127024202548890082218303625769966604162917225420949947953908668356688056918912553823473057278041646193826731237966498247897012221234533269161399371107424336524479574680013478778949318918694902872683343328405525984592742309504472325696649607827605639409611441349932794522918765514512318852732908083302092625163872085968245294299745174673944606724407159233394163741895131409579845948009390106059016350226833501784180970321070727941296102612377069543160242594834956941612632819795042785441427200325939444158065881007317492082362506920332156877325831527787038029486384350166064726700227736965165118256475983323442123647067858944822457244522191791572574118314091409187114566319681565736213043363988174854859727516371845293821110336797137901916286912549558228746888927333780546840937218266121141627902067848244606053698098975667811645607728409809042499971880398272432515063263585918817612726612966321416268111206469249382469621717806176547557724569980161770263147603492690852173682456290678664253776580283198647647960873738097247473543723259908665838803512479305549826969031767869768149692713982700046040110051468298704690406694834820643414387000466186623125964045937052452504277206630817692798419312380779182865125763187120908317685921907709876612539167155396942766662238938370781714891140776051871824248426754024340343365023101181107594495484456029446984883298794804503335909826221095942838955658145616683203711852165616139646545224734750487849854902071402291267336143169104656196129728022966242141482215817484839718681770612549144090517915039318511325653356682876663322954615102106736634579136450089534496446425761779644811722411628203921307567832606468458217747372041317906568618877098752142580448206898416735712472089425255926867552465840564652243298281315575671185925298615447802584046664980864959921706172082403596177798674648098090131496776905597674062908057260786826070200652598591303735249669846601117867267316040906724935277384568112265006591958412006210324464211376516148022421671667606935150410728438642947332476192653538040988451752099422320123233888485059994769360919728183798246751490501420121845620485824136529453722582627880185111602550007607593900097780147928117856359015751207139322352243956499891072519894247027375976315726715888716590855797125182217176795590212934086783647373204372187009921884010009914205401289171525435768678028197935549362285952575191796871670851682468155309827307463201444913409687371193545882150913822293715056320775716723301726763210801659414378090500616483221262880945634116261485946364751677929654379772045187489733378637680950139836633589670822925743800501323683973566618685440924169559736331902348876671114114402281919889945795192106551245501308830433057436030803692273466619701364587826608248338175795410745515532917672227484665280563822377763218797823886009241170450474638933208564407612171474112580652145625227119448146999397151460924188728605151157566611516751467952339686889904790468314989211078688357872962876417107602774295276140039488545001006236077388044436766266422688828006681446319890052465297768426292288304750095524589199860832397018374330125268944697407885694532972318519383953970290230801425742277912569167239446038973081877597623154498680610338262969064649673011890044897825146283476390755039450825527848327453201617396337759659028101177613442783981577084417077932843735307765101941641957245524946077456846067607367657849622302168417192339809565866466834212216184675849784010945208553862152364957784682493122457022200402868750726640169848800654675000865386649774912120520505179010470728372704398929747893593538789968549251877515502498421595178360716405079551939274006724686146454913528381919595642022439413342154432160886597425515588145918664425369887910002555772013567598484250794692630815276698624455256360049910635996278206440473462408916367428709837922954332905472107851702563503722803801730648187564681427508493594444922409697790838567040223848419038884753564541406144629185343493598680849743210683052120692866932447070008386875129738501964767866909973482219057435846986867884706658151162226484814675674826650340198759897862764976536940624470164454511871366822850999574679527935790178758125787663879827666089184586710327166947180342888676114556120949459765102767655964267117315697121590755828527382335063858807178300123324065878964144622880124063326204572623239195790092738633412952595273723758984373754174975098240766033796436760922374348006022623497457806203332942794991124805142173145057343700145705115439846693079038167813881611971221157292733999137134266465075229029292697432031303604928645777387680246990233384077098907436904654218389194872138855983202570622020542474499811080020126154233923816750636312025583737161886070969986788837974869075796877501617560159754816092408929466556891386839220618907124566939349453314248830324265658749343758945143652325061946421109099388815289896289976458664261214303881804677709368548057397102851615007385177021836272537375430873898262133568095025623702768996231734958997275874074247169217709037745719384953230469327510580508280003924997672491302511252164607681477081620993351068462059432592759426108726475426869808979701072191684684064831334513200458476378359083457142225056808765381095631308684494203317392030867141031287580803311151704655841070827048422217285295748309260293922749416905886947741950383721844966120138873316309432414154751269609500308974391091671244958622637161153875752097133999582080349675670162025743260582280425664673851581496916631374667172987640616551567540108484263953246745851063723505150308337995007523462425996773569399987337079229419823797671012545306101701231857761997910598250991838468770407688916455242388086533536175627215434235158128113684988742928847396950493742764208885398787831368193972409711151611365384883505774545760627704088959394720175740157559610473932470232753794761860513044221360605186622504465629992316338826197655269075273281625062762596755158967047315590364021758597113063717497777085560353638483010021373404803917562033618685045277875985654950654883167841594069284189505012857422114272568069586915989903630440491434256818090582792556411221906769559144546260230435671204873863125499451741834625474908999994111515178197733645649952987186108998356647085126666818744747215263580066515261166848469188154853025550613813229342055812312735563341836657678186588344077868549850691668462674963125390503532169187615154075447900174857504009468086397099094574018702786126230313502181222100845929868596111854413779884403738142767991018634112299009397682551009689280567080581870945899461880075784012141704074017123854659802283478645989495024562290451016852639769465816076857811135074524812142575001182361787634712383856310756741669053499808951030784857375495470125184834749662184663448154963189481087252090539766498412661072710869740228052640754302224990447732707886233367854635935948601529414404878612792554367292575982886458143547284658106886274133447979282352585490301877293526629074406902206638412793068545168010434010611186825307731510634128045851327017374274686097764490672610575325336690262081340530323547231297385305782617299277372110670467560521626108602597658587435776164749073995266843697102501142127099731701912038937149944754706123655544474448567519387255442651249164603546336893410831568296576662502016159977546461987924538517233076945489421990549782969971505880337167626772129617621074862556296739031271276356104930436205462393236417356763323472122731160371253387478337216046984652590884400307677066916632441668265385187246408742207146813947014520030799557098280473294053409159641739606406721638645427134993503229555330673594379897445677338562751052321886307602850798646988957872131087674241558095142369578071984432618496064197647760911867224930004387008385309408447864838240921637489099232508249460906164797852589136038089717236341331968629452116349053048718310675457006253733018417728325701876861998380810016744480412165365491290586876156860597038485098875342603661648118397427471827918727030956562922084576821272373783752940211110959961241529200879656510807109395144184719706471286010605105987084566922055835848413520462872786740118683756927797747137949100621686458265860537109555541985129278413506581388375936617592989132691781686780292331314815098543571285936908571994875351660341972905054079196915355537535581018028963259351711733494081696583449035434681913610140101992806762026558324383828134388092593072196655229801907394135405126383632683801649323039133529158876751230240983041001589205829362598698289536247722087425057182164305998907077873779695238414683063927303426985081048423949559307104370577887730660543977985994856502900727660383302929208725177210238165662000771619368080790661230342748459255485051826293663435539186635877073934607867158330399474290527888436902585933087087744185402728358707767669556346387768223667145550589476035156538582171372668411658824868486483762579833306242648475194450655390234260270845525176302720545566450111715902788278752353909499013778370137017402798989397168134321797415566468096576921619753665171753155604630835494475604918357247513190601172265793133333801707457085805005649039369145600444557670817389758336205876200970636104564579589288686491256690077690548962865795649140994757478562686669242178922590147879960427685540386951932565337782785062533426570840134344743804462722327038727076483892776023225745142312777858199729971666933657449718772956619562163153286426000043687038924764628229375511087122170207006451466034229200098341734420991518918790821708209538986793964356874235855964476063336462098745320858818029706136593316598500358338858950467661980270882795129007724625659145044656662319709578779372178981850607220799750880068290541834971358423860586357646949272238679784424898407718536654918757512905385880120065912743576045709453861792130314245128477234736428714804712521808550070190020715997923983975067733852356223679102266102170137163736007829803216240605795765053596205687573670904181437558419783396617983033329942100843569802717095668132569786226240904068742178651050419047306226731901959823067212281940127080481951234491026904630723502126242200934797435517493322800987362248496742070494192106043638545304007424445933863499757157913232688894672945704590415519309988378460186974091778515863540004988277319715961372942753138739647553093997638762320548413326689487068949524573898889205280834936260161398282677713011183849921394841791726675460126730407639204217675578444123545621349719478547593739212826519341272418430572087360800114472132481889768443699331072803674652392348481714170327636416415179631901413012018704822100744960828225640337883035771407358513953955781295615930191673055713911312746125171002028359069115210349210255688231471732628893705457741933115939868526056857126076393785753390116370980059977797944287483326605015733488199264594016498108266787130642491042300418031290770971298458425704327115291541543410019545405957095259021660428570599674990490850327282131296085592492194288332634254759314284967794476387778593631668109651155142425105669655810626309481732041994815515810637783940119829227717676516790338210982366423118469775916546799287971569225966065512518790534902874992568795445098266000734915820470497900758114011464660245265390611496024552442601381778522484748147488572901878700115503228517629564075889467900155751562160121877707109231559742046334986267648738969748411577940321511265735126066704159451554474857035480279486374335963217169549099231899526554745363104460446543185207505435832540569962142725906159204513380705581802155880506346680743103319607548070250669361453495518825695522815049489365581824077862104603147802420625041912591305514303117719002797280791190065558318212520525995888803467798116991403704379869058727947795780199709284143407153759933449072622461163120571702257931199469690915214959591758416738283937001176733589619873156680435384132788939746616904869069744886453909682311479767220538652181665220980928104284432867031594432400304942395675417175953069568211842265696813144637223556104129043338166772559555676852352043304331003017505649542108337671101792661925212710787537915181560878073630807307359954174656146079947769722645680760436106756304984556292587196522440274358212893379478850032491164744148685296574277833745289496266750834324821769056950549881722942724105781116574000457331139061599657824650803795894208484821511189961475544355949875075937200486314492082493014167734383757538545692897565740424130143447899460990993394913265948648107393329691419640828118818420940539770656058049643715720748758764196966157737518422223054176085202666605551836620394325150906481402119209725448939619873625602657775953932638948476069149132361773424655763139296142104555954759277508627897247427321943657812160261264396673564392602996721627838686387573698076736548931496695022508371280131178253929378208143633428334708026303896976398211968975224553860757889650849062899367535887995150256238334656651088882591316660419906683383545043705620513312930999716841580002880002315415312119855501659793147045634091252009191485725472232758459008528378437313837702439812225526539483916916474307739648810267851834585894229640577118073945501121657380028460199586526278461081158105308611236902720040546646268224913929436315782469958613229032501451370540618758795656871590359295514083708187031520612152042166020451053273415297589245016236704830377246053407279338248371499014350998952181365173672743367782450133747163938847302237897275126738320026253672074162321384349675196428615588189639534438315421191455207790157883462218365249615434460434562741458641760263440366166576107769240119797987921938495879412868628642740550201509082073394297318841162589777934140368759704205632317964840066376201520770331415116430307666562938541598680122831637634984657262238169870279027539374824438439015284922032878805667672868818795671250438639970245195795340188563100271445808360592878490813698910711682256852407313415093134069770593893032677919184875692476315611480442578355293962755176276174293597713096904771138405411929518484885342147883822476856032029746646789475311541373236800761856620534176510568860845387849322508183588959327912798766664777948962351049638123746992731723701475113876231001077446187456457895780456116637024671058944352461397354353360685646428368468723474820579364745536026181471278941904843662080369847531346700222010871643896457413604588246294572157700405455459791244649153892484286046077960305220683637623233878193537386582703873254582497043328834536756245296647319338039130635876017751238235665616853459790871023194304498793846816316367794152949040725250181829476087534442472232650744475947572155902603689971629162081990351563121002760081226265145323630502360760717322553545817361814102915158245782348109672098220262746470981083557742607297954981992430917574925896090599065901940444043887914564024152122263368420934427297099367222101170935690025952439549084064928972918737513625536945768573389427891770836634854184132514346547612035105764898169863963793109416070864761386131642442264119648495046831872397956949676645043002148710528085403614627782539600517392967324009065868896443191782943624107008998222880690343750438084404318990490496168985941198057692899659225878401497466042871540921940516044983212236892991509071402886799731918037199483904270999683582275780988074674969264715223681188299387554514492067998008716716927480121962865769306541930816427381789142450319598727495726195419995041248131577004860793442414561359397123350679231048220044021231075972845965674755428733246533773665915729710765726815588375845340021181626891053210836394461903296304491470163116271142711304143316740917898740890256746475248973069971163851951861309268145706058900065714796705142394817238997412490086873728770514583660706404086413068065073662643515468036086802797144632264599114560342772912906595666498263116915703411945581180868869814515634812999494846005249545997317314232571343214078407204347811892096438027355032318866850175750504271096762588383784719365654501323637519722376796523874796014267295859333391810011584201021887056039654758631639165510255607111835294024539362851942890258986203351992419391611278914110966365455211689259969662732488140984389637215392697259075746056382123759773920239185063427249219888903222678802065893582140463843976679443873807109836843931545527902961369178446294661957256785471802668575154827650050936922730983386584049440898234661375234073616350512246479722562210986452690582070969818004074866325910561855705425713790112571491748991937244505714311860591396236230088504611875045624002809232976425594708303530233984774982440339462448879555319315827602670731487522354463510872449107659090813811152840218098246112745397406652672583736276037640768153866572803631013702797426860530898177122337743777228510200533346367445190681340529377723838807832210004186850538477836198824690062789802426802206198041162018887997256550327704151955997053612771164319310835377844444400925683921309273513169063134885239058373082016313489270137687747244158697937271291288969846155339046183936031827130296049545153097328425110216714842551622246863165497619268100776599829852837702847850554889306019340169690298595510341728820982222529875123611036909919696287893962610702298343540657569535800601985604359946818401474090335834104017530016825495365192258617383877331955665684217401315969589128420670560873290038062521695163241369657008978687566851820148194643845380203948040661147259695621021707296117435110738115763561210777356587980226745506654096432472312566668279036327545225348272277679952795471631117216775335012199204450226396669968580127838121971805303618365336618635677806718147455079453920991267213006793937266068859061252038658051665298166841100788715718582327968760749327295482218819401170224168081341647985166715080762636497555520009125250317113436137296715962283586288735147641513442755053499691204256545862269846124093993353960377714405133991031898595920264396099908548250378925245686933399554851523572957950806639715547400900583695017986219926812972403329920355178633981017214402544909647076766922056451820267696077696329551677790440211210334896356498050741061048078481940770677958104479490026908394330796648554929027294221621037882093236873188753254439680608710664719926851964812528136311853093555152094777371670944488747819195906317170057795517596696252130897675885673830933966702577510212791284588338950152013571001220945427855762938133813053891888770557485263673938644400195135403038136094894673011028379245117653868054791990063289503441710861669786709692007450343488064305741102161138064211225041424955620002812175169035092903101667688223617610305109711959912544332755364598920016590482593873033595461915339138755533719170689178120601665837676140120900842350563872379520444387785684558005756479625732012170210770668938531434230968003194658863392546927133136626783471717894602343458115454022764911718853391281333500632833469186753025142145455386014384702291443024400852796044763996249862365380683270479277680826083323766007947565904074825484853320761039091252148846709009888284311603615863081068488831158388674955731166519995699555483887206252464954639346766496051426527794373467907116230478576112658908910597148478033818995077515805375130158643693287553423087632007400834167605329746619386206005660891362535815957081419280527327281198068639964771215502934658298466609170771507908778060820005456956211602473185314215013399174128142597843821136674175404753967292966562766859685651478971007022608833785507102432955986755553656420077701738958980858860879942001565551457964120142544497009825658456579342219002440061571830818633258000893602471894955932442198737308847775936333393361707457860394396717829923121349302383670065384267013389750086850546365592609207527428501925041682067100762678506129925147732055964097410702357356382398791221195329637174441184784319108617101058768409092079359125148779974055513623240252320318522335888820018608839027749620326953524729131539389356252957676723858082718965893823450982883662213005180847162293255307144733390172312645512538480468506500399622074183113122831707593234885572482998483925031359946177047126497412204555746147780101961600505863372503425716114265236142301835353109159686382568129016643481713911180229325348653045690737197299679017710545327116253679909695975909073478829796748080171611133486232075308662772418714901437730366766660532245951446275073593023821094604368825787999996103951823204871310402076244611103419698043604959060708640757860493794094153066242191867096021435418209760935720547375639907600602113481081725240809582257367059309646370279714977044074119853325444143293627302409928106809073098712524672440055004179145969102168101760967453780601874440722890106157856849825949445615211992998108850775296043811206912906158986089043478882084816941637509543481757926245944103143934071964671573022039548807862734119531152551503181981879792239378094017409908097198158535155810192382292032618841268906662969575960882814681117071497469615306521856199064182751029179388019075192789268159513359105999528644723360756763833457803852266413838176968538917692002128060259172433718480493752875583310526556793476654702512993366412575761294494849040269393846789680936924838125994667622412369269020253861268986794100977147516506306868916280453263802302516033079767364803337400879507593195283553258982984164088609726918373360433467682752869871840870912834197551252219733495446276815149305546304190768752259471500537887779870325427595108041797802525352567740318399668419185276846933586086971025616524223967326216897385481046651428989404777127559011838368656738467282117464786314560508287999816752126866980880370562567987428238146402788263683556257230176585120116584526759424546531332053476717387345623290321217797014137398913925887867530445624460670649196104271476590233586798928660900442016563564052857063122895933217308274130284663620907153815403539354192578030667389674442483006988630295037162047128070406945581199503513173102169881666832755742617894659495366226146796810355555040047778014961486928809243332369704330864207617138603519649476641370247047186390441286029079386560017799298148078569804335408033422082432584166742554682136679612766417992354382122407531662341787260899754875229099902206436857808012366492075727448244476867289063215574199633678648828840729600527719159105976625514938469576710855832918449078290678231580722036267510791360212287649846724806193093809249546542417416469267706279830317282069508556343341148419303235286245206573765635865343134786849638265648156311672652740219367172403604718738961616132205457645857740195041545504728871532220687640159154858483955442944194776583041050104565475776468666539930374772612356511883175752249595748130403552180019811673945246575008640284070358970331471200903737592061128247621288695556669382246529904689079380012594449053204323703471052431289899371246514032052087274213887562725352616975729826103949556710463185906868495765650134693031103357991605367248999269579456814525651314456048362911211398355304322271863780595254435290096551610975694451568917405447302354228437393216407150701052492746952862539934370426249431116214766582293440868145739334418577183547084053241940355677789436101042723225682751124050222523223479496160433143852470284129457477313166493655868021597122226227508103216585361287117827622622607170437431074850387845915161645362510376825269351430366655055941978850437571027897262282177731381876200962433765240728307466574495977707580977266408113422969833288059614581960085926505425113562102241453097079942241289688535936820638914719446359082291637455508941454594412092239102554081954627562003901188586883990003587647456154439100370544511140023482293218221322434578911881677996454444404981049429516948467271549576266406805159853563640536821018777447930991011663283370467064485039353645794344489606785544235376390405221787627443688578360044323228463907582814698860938479209825528659101947680167891383455409301733790739549287185370582497359139531082006245894844628691830318862094567129920734306385173015229708274500767097558812340840871254757162768028315511372993140319489608560543130796872932875247220053437433130121504461136978977440915473260028032355888377257908291378693451540849689315929500482496590530917012941152349339190442293113141916412936170731879946612963659158188819597340772433518141493503496270669469718374663212113231834926736604598979007639065649464244441238917359539168506899458228574147251210748700309735900945368688017933896101641416771816260058602445876158791756095638134012042253911229388367714883350573183637704498844213308823678031530418223664143130578263759989471347683525518008227386619604881360402138729200867743362710109447951419970904176895972591101224179841927295117228576291773073963156382625664775797021073997504979082384864542020618175508711782527085423242405973237702496896541059777504951545415530134023352333886232140639987828223265203212334229851135781968832505788685876431038021434154951768238837241714463285132017455880022103272311728373563818471501439961553874984674981383643506509752951074116960560657145333598481435943725842464462688729061387977445457261692503146142786021608525236575612308262508129418423913086528480421688611388620941928314095650058813108035396043451370317757182975724690956455366459046713117523322257641563063544407324227492593573838702728418452449468515749053311130138526535209524326031003937027542718638968718012358214716137188796328472501943823962555082081095702768887588822342224598029382080139379049491902614590928694123920762576730691905109757933105957482581302371762170080066400051945492417446023623477817642272337069406232073498373596696307790803277860236274710781098706518652770978892807992552662232735176671175513699051242457056891985325537818123113140343187678780673589242709388474029686815308538464394447287198786668083080130081810034885261101668331442023187175554235426335188010852312367113824876026589097573458782953083045095318657619741153971635495824432345979959144262329903840771399188511928378881750103910936822413205836554671169308709304357710154937412588812871122128803251089582066750996967034341936285436226764586992967038440578809367315635758076532507043338420807225688216821741389420008973370446256845493034481542503354031283167001634874173784418845069120348360468920479189838507019606497139072247509180032707210247657699703331100684617231458383655519434467206608963211375329379063902341470438589885535500228593866368894854276917717867673265163655857524326470761832326363453284085545923950424596457972961369554134945942876167385917401933823781359849071614326913734623374528570576394877372108819873955494816092161250754965601832093476477975417648726737625101763747192682843645400948035225718462390349062795935658213816619674377756347019420712714574185825785188722276271105936911351828650544068004865525015278229604793834862958990811488260553788546478371162761502072510567805827345595336234155251902178227402452977817578598722432782487489742801095222647936283430537216742155016177775574017630750914467526867641030397040167045125136605129953154975938313303801351171179607538455860235682984562373287849315049291850508484504432355833736152044066534367087621285096735371870276090495518118467269705171699107462742408439580623943055898619554314495333403556234337298754125617941425137316088543507027830483060538123507344539903279877340560271435225550863943617584510103617628181043271269586742011709645132264115057428908260254401643302778266138043772988642705094874980413513701390903213960997166644165986071763261750425219158019058070285553609937302189307093570867645180659885874194493679605691758659615616755975432666077610951619344273568238110933694209661502769948684575544595119860664656700025311630647429368937548648148164780312966174882361458423569015962427861553873238983026402777361851292735427871092877433299851839457667498511058375644807472908239891336260527415405099874616932396937910188104832495216063942934516008563152351768885173443810913053507443198593457343576849772693071039822147400252979191986103694848669279773334895976865344601433567714708314794792943825178285555198223651874280875983812903039239869447827300470194778480784984001819645336075097342710163302940577641972646097822866163223560457598016658999078998044935107079847921320068060248465707772275351786304177893027471367225310383109597771567293153080511916158197720821032100067618107470152241839056183103630225250783303786829318763580288383260539171844899207978374035487002579094026083695097996023945528291365249549263092082324440581565949660095011796095372461602300565096500065669300039028625860194001482549888243266484650253379664006623217643977034538080861243006014991049169619675696280739287824796172571968257108189731329151104808457994597059653728312812443867306772447225326187171301139286407280384320291636931369829525177456908655729059912195278198201959291019311047544064238625792414768836804692062340311012885988823129586863884161687707862482217638674229279068870584350956653951639453643986477448310859066401976389091386741950582000450954294769449302415316699004453880208395012664975101489763265759732748430752731754518318119720123929550102278639962650429836460211245023312392081005988030119351895131507205538851161326118486232712230833464391943559364027139979289852984296688855777847244240176054499698296657356938795185461377501101436495839454236680465527746548853016466387386415829746118489550903480183335733919165267625535804548856411102864799826924537058686035225447986430518914131398152553019793573746711183894196014569834823818577363944090434552829584323651453571273009609666325329170994581077902696742133647366428631897207392676816609713971212779924672803497885341897788273637162974462315567694624923162978532784553657328342874736099420454924281673816518238696084243049798048556904856457277730615096713391681956678801967773192942560192900573760990415108198593257867344543528794811182933484261489792407330575373497470824134550051928821898603593228007691727713079285900899789501409947360149135656900655258083848591953067885106176082270452734287421465030296692242790038045249334738129152674018933013204913747830169828156548951303585975121261673701570070322612731656690677001833493884066386853834817021357963037760185580683043098952996269736556585771710758813575042715735703096652736103225401288305535581653718354606810025185007918519642448528584791234006553209972912562693876453585745867148315996369835082349545321504162678882439477632352688417162811000267661954871236712520366444662879225527648730629576618789367383857069041665462989252157896293987178358619907604505094098259402671433429230304471592636362170773116643090937224439881463315251172754914160488325259161192264841515737522921615906503110580293882710562507808658450313355823034701334877584349696861569629944802855910078717623518948457189244071097405005248622853969722557806796580861788937267244876451032062398607662361682859697872860492521132689329396187061355079669624510626463648760150914578730545362167034959253547049053720039364850360790014238771525681339139271518843948957711221049243325862859289662158060468914870797983000503616675144729252355943381776344456830013363995759574344064895997466783962846767470403650278719480999454716636512389564546272966285865433863289545925217324579160342693256131081483206924882735016194407072206426340991458059380947007794626708535891239534343144339125001892994627920364392634273559005744432416022605785802785916371948116671448652517752150019367887421624484591227439908044321938729473566481724877067973020024125821976042086384830782826256596617586427311313732932966223772175030163854888716326698069940570996437995302317026625486254479227392227796784869091899935653736365010766140935250019064598159419902996073540135687868505702188672666387655189587103479773035439650580182236138401911770510407754792805170190542510255666344027207596449134927429901145804033900338091627846215234670035451073336300443858109844116299614488991202607819202382226698318763318970192392524673148281942232025025097813802099022721367310137534362521741064980006254052132913358580525536228578011167989193568972070014928367518836804737258063323923434328436188567926256037160312103511732593461790665494293145887379279557276470770066368503043178714155487699045994139411537572625851592328450218488792947951388834711215907402938761155243128511399414101700057045239382474468314554944635709833948336701512740490985110093387133425436155845507404584505367246006708590789556837422584062123350312272722904408083109657080370331255752633494412460553860484308225492188828408463505863145594090363698122528508288789496453913687183388805320815202218831967078840960601992155827455663902351059321562152509579638645306413002370726129354556910046180103598704185362978492717267122817378451665627313344387563203830090946041884277426151174103274073560608918002146988085175713460200804759443407898704814007582474937701004502679436640405317102520590065341596843391266962281623819071196967710136077866018265977644003638244413644761234829677673289685922869284767194792207385234259769051338092079312706419914302358505937296366719646256354650368899039202192453716498429278373267810092473977079200520138410863530337146059208117361937394384256994171415138196477038472348598003193729084718760581428775068585111029562700335264592126522010799570819958333053417340429874857831243249695578178387797482278885631547987844937647155804548101568389449357127830592584428108678858049188258490267565588752091850405322576113697191233273620931294250892145974253387463752823268994895711225067536993895184912012209840261898429765634969637613954051267386820949981458352684323485110347130531386977043412246486969191016854690267839134719682134900319132584367516266887071695920724027513712253415302796151309521767397558211078627099281555336432355484695148285363240959436149146705608505757983488389691250599153314732564899068794126576333480998790216818523614851950465479874961289267978207056162376003584718241027927866758962181655514256236036611175944312664621081916241145328174223011399083708378858038783962277909668962289661834905405411453207525561825578726275493715896174324555131392600782257697201331372927717344998424805632947790902895228505791913681560168297266082516994327119475075279564979097667760535303280175773658748188577658168697722036267788801148771475190312990031428594759766356573792410407063517393234494541260409743229125234375541752040540639578811274656519839531360679004248974484365141002754263333193795521877991484676887208569192502696851952635078519392449321012086916148066265312346680644907452813530725350889255186821191523893873719747415297803547491245780799061728598680002948691704841261888932995810247051518250444361124515045228496534178869394424112204201775307025242940916732600805857370418730688779209910088269545925656163411510936847261153968379513080132263284251640053780073705925646479789745773277840269891979480214865216375550646271892340141621040007585429709484165814401533949034127163953352363127389647128655651488978495236795890329160651612563980146576724234741822904644418211078573018480529082233441314807825265412007339598008677837995326714954048151184120150212637413656896218634573954962655239636353584440869257011821512422261755632637003971579403193173234865135518692542701641552152857594502833843859591779700508998630845042466022330183725618467010576443525332648716022681627493761450910793860045519261168654637310187785241400528534899408620584284555183062959380238118172993612402523884985610774352396377309733802462517680693827960029490661282196202076562931797685666386151793862796377022704914484093409680244507645931816024999926965166045407309196016441154442302589622383572964318186684781155744351481089070624320612173531914878335400842048960894181197858762224642823100792416361773438666315481096397629887467212259883889405140006485549143714426841264980509253478316552696428866762255337820482455838618103871169133010369334418909939854363003699710106119437984790893366670954554939407685057544552280598390130091870281181347223726711990223120328084219458356132597350629216241972191006893245890839494815329841676773139901580996777498450355828117124895278784843010520907156253843382382790383355027618612510812714937972086828578724604523813310696224183600637872558340568388593088108841243317223188236686531373993469576061399951677641622800763170950483596240795143805781633764464714333896576731520294661491953283713408089346618277378189364241007027043807656429511534095873430694970147949947198713671945341376850866862050836446898655338000201119009740937426214076079076832219382192237892725885780778092527993653659714411662100849747057916398961579161827264978266088991021523364947551023495344112165147602790697166173663762478933916557009555563351829255406531455530895431971247746467193859224144895127588579072113652049219227682260849772563522714427333616352109787705628426490811477816259163944920172679890588405619895188015897993460575673683860838531780537486193810426846758541797861236304393711594928901811343400256592252424772265894451735614426139948278615859126516855491491414074553274680577745062698464056177315702539191448091221821351514124825475323425793742270433973232988642562746632624490178162171063679520834979063031168943991158599818286874052403860024453476834084170541505841087227958231279667421284187822538094089940010805498576482301559695899284060100214552508429476321633936447557305159301412048160866892148335879979127487493753092425217680180969712338921833506886325516565994335388335541226940803276402969195482879987987683144215849563562690278172169233339029083883723471818389531783965955710569838104556874135711604761184731942789451709750793228984193948239963076956676450963845087568047386227919707002032596308061419489880896688353535049715607684729874893987936715310978668943185483878329796784443979932463387158066376980160784626957287257366082239998198129653405740199521087334693986563129956784140043172671061333075036396039606038340420067866478798030758865004789733292969857783203892373360138816345105921101600343144874225611100150816813458142389811770015327147267040205256604360781558454188008395052103601741251169240886313760288112361748980248307752641837321423233900587313784060307124782950494697331453598899670719398289427854184933747559420583841178491114940184819516865558672334381559648506558099986565490132366204743397545806504097910801279111722703677012867736041180101002292518801375026053519068921844240247190414904514097251753990166399486012518669256169101247580966699238820127862651360238133839801203949854553065286413414157992691705300109284920278677334969988396068580133199017397447244466732972125673940522667275067508806735618859933277573085006249738386032573718360129391327330920005081578942349225900354566546326601626008127755411670563400011724130391903726584007887913162296518014713194097459012087027379446827007440682052802565667388938229277622912143131395448127355424080992029052173243803842091898123539334244240858223526545610982320289257116778628554314920434191245805482265418896530513321441663384217432302162570666863167497162861280850320356273345506044170374381381375614820399531148685150547202747680622878091738915813157042548480287705983593127690676336806307858972311792963815341775926881806470460704756113095807144199438958884449751535961755480765897347806063597302501341488842797168593448885984520806938528382088782876510326281282484414764433180486073279393959188609911697756550683748590900975339508018827416344136851347754773645813483912226015506193933530778495306554490398961053820288967679338414497352848179319946609941405890443639247291534009398317342184887141835611070761175689182847103294326429311761997808092018291192919687865896268062669448212618260416982678134537593205512942260816762799271158848766036749449114420740193055970213847855591873580870886454305977298763933386965843790229424572074846220839354833773931981064962854609192271729717144730193486856032535568684184234490407995886150388780150190806079665095433661884586908918662273617098945576638152534336927983687159163388337394747669760315089215642407360304743335628841118178786357306100353517648541194373710198550199034723064673569231776261326940636975872552158784617891226268429086292858068409715675241306538909936694956237185595735014844189762581352142970365858035363870254970269064061347285511132845746880538879480553049748379224636597277837844904855366392058782106782944948514714961306968859440540264449235690291873237117161549257134216731742295672281915178721029913729999189477337608143475809848372885248057670084515620461146778608350271553172624695613101189898520249438752531908438625820387620105203858162706628719962819225505428183077001511357391604267761267236705031607389878191654063015449820533878019522720297157968487796919812800162436806671168204075990466572131055273303852323835155186893101300265222412815582342116226311728551179262507452278994317739998935036489677830953294525690959741382568982977357880318015234157154293462885207273721145356738226274842950974744012939077183595633744475670064917086590025074595488802560160308386865590777641729990139189661246414782774035659074662615311593563241863876637346027229546243023655138222171072528270992067701117768121364688492665618038224146909455012884613669193455614515717220253213767507239106290656643457410428613388688215966411225009760986881733360544707616729982390560999273171632671750397661368353261405294583226095403881830181191362833461417442228661530162454688165891509995237046467560883335359297259764585591522402862788766666149341222344656507085908364504894010665713157366902706090444185404796378534508846045864834979205206875196765630102844645205506637453692015566179378614599409735668359128426765445000226312731794344579668329818878713563859857255559620355535918394853234174429102075862929580322495176757473178204239782343788125552718072410536918183646298343101602238088123342960570204275602778195301263328785818309096015703390893379182184697922055496469892671514379618754259189571703296633849961680248858113146864831703949198347903324909723753677273454594346076046696968583016408683752102727393798866803093002017130584994772681728270075051199112091045743246436932590197614094254938074530173939734938759500754983320531589109759012794934654212224033461421981152188852464772732431255666811684175482962664306784269921268907350705494897617560844140699943473393151299399723636712468456381183081289413089517481786595858448672681926713819714724240186346076639476156661667001931701703492878662288784860719463474503691926003582316035573661229740365307386441206843592911935209701740398501323590877212796146525521041877186003452424998836513214304958823204979484177015674664162864288922908418373532461899330097807951256768489028286268746482654734447335570037926781526882836412348571501887621715120322938164809345862349363479459714917988773439320305805305210974397803558119203006004835053964173261487185080966335652580738862028727856872319411224214354326964365417883696849847376658628513743282252346854919463974094322074658351152331134858056333538226041635503132394382381898329474301505749098330284435819119449090549683801032889649627720292034690910851596261641155542459289660184739560718300605561005068283225405926668071636101447751303735320542145832269416266225660995899031313523450671605144124866645435993912215607481006267334948244478988598639903549792316159792363360452206114370348584126099736188625762240994665764143485100207976537544144205113262427107384064509313791445960797815745223809556920884689427565476124000885349313663987490284768692102399195320485663261982789345632382300670643705837755876075215840540303884181206069077474874315234596243263292943425986800985254731786931479935712285395397650502871054710587483525158872338377093507072359539139572296924556175674398624875780816998303701507785755798372234814259391754622314669196288525251557400926919958808108860688370993003493679481210713949406465610879079455771756453598848052223583130315347199906110823429522574856046941658918522073838841549835767914465069171713188912839468843918021857769627388195128370378815933855129553524277049061529396999896809628686547516362542292784490250442580916370338144816954266134044976812559500795736659431968261671619810780820947598894345779748381632735548023851466311141913678086668376555369173983802343564461075460215898705674838754329907217694631347629389037480644836479258268449873421773410924104758182989335296559449442805556296532285410434218444714222059794935329933593586847869136512919050265762585357473160697415690341849552475357467647645647403799564193188267792490853650871508877932849769356428943022456838666854582557047213287629061198534420968380914033699485054010498164133013561859812705493410793435602694835246241016499950257855431805773139992005966906169236733148400358624445905411779295106782318412152691131958648710647780089300269076967115860533715469157673713036339967923341268884165794343900560264873868344247144939801878298072737779586519863278101941844764129429859675485296025585269382097730104714347662542225449820355258603915931322939860931213067194237243896586279151804003847363113813131766099944210117859127755057703457457186957576792068670666108762626625859212204496655869416946313268175213321175857914440845136354392349940046873245058177062933332212025162669793390783751065868973709382691568629915561918196963444602347204668031231416242546794054751937411331392915367828306596388909724804178342921246828902494781057133347092386233081951610135618855812500258661555353716337268832692379283068620719995630696398777861513275047410861653956434916158519225262321987176644885776242447608809009145775647540309385322584071061346899341289615549731616430308640106594980951979633329426041536197346705111585717688707771863853966231128060870706168587847205290643095854405835646829861792641418114494909777710057470186667461337775159325280163122490368366096566679933389348090918310469201399356838165362951188891494042160134603460575441611696016164843254581816838593283103644097838989138633936807408032037315054451185373858840697502772775572045918844330305694253986157739678890585047874564858431299727665860565532034250056898532621682658844927170989476176367859410165750876026578384460866635831176901553133248394603609781881479005080478658509990250530123229917446735960343265788099015611124194430438851599294441762567577598391141061911950354717914537888422783435216302448611769097953074045835700709887357213197850827457012915458584866383516291144499076074725241124408026078051079527969895030116713534444011713816947390165163962524301574533044990248870966966838363614056356704020395146334107389098167218037977650559835631829564933903609106581671208923421340775796646124420676219022596482008398818425784321400099772340131131050243830583379860015560894940583176186765102717547493998394637301818828323094228089194333082172278152606490273553130758782256835639376189654585961480002551165094659041568196013979112151776084519186997166347813492088755309676113067505874765616693930151744236503157340394183711775101710971253028032111416906572402458623302377293221120676894718095920208241877162943620488974708631356682042873772191577140152249056009032748994080326064638409998086726583756674079076236741675035145299672230209792771856301563415466713368899909601774826094265528563990833977186336703591431152048004634163224530578267236962551749644681240590379402290190158942875128377074206440708046088617850630801804535714936030905960362531544448334263678952376464473249564144582207066405956280085199855204096500755660558609901511119137286538216322233037525319241333659650813394132158201357131542208395721617463628060642684822806120645138303085397857915534742896826708400609024930962323842754111141574111372518662978688514041235992495797208542762576925643146496483033113678528594408607853278596102867116244382892319486304727863442135157350253678919403731044414471588649349859153443510095204471967659844352406491550575630037308718142723842256466228843365037110652820414893921780893507556836278539892865997479801887727653888328789849271647564305926213851613426575555721358553044061823781504381816002562300732937073812240454219177999778602026302052125987786295415091509599148228037373611875788328063115509353898310870896506545712043209322730460006781337396530295755788856520140812586536909467408096266013341784003031866394485541807145385167464315587884201598845608464432605025898667301687329862733123559300331545623690185738924882232215804558912429801866409970150468252191763422822293615114142454642953417707694888084521470558546527416625441771651253750511518859135184878043938323284220814615793681394416680053408337493978914024262483005613625966094432028388209711775868266436746662698565247421431172371261664262253619376925348470442283022007913255245410835311606178950852087063660399009463921255216616969837007719696985362432495430795056496181600916594051340536472407768390179107191783714954168050741477093774357651915286817743190720826621911123447781812772314919642801268804859712844181772338836737883436876734161732712753017591690034248905436450802407522733889342782159707586143767277802711869968016225463918105657708810828254710362801227555245664031032437101956490705925771867062975200372482228311650260824629037464274924558914073996320250862165262138522707577558524739145527378753230904634990033681533526176882302279079050781551868094054208269669303809980724565839695071664823507218888185264839166873838514727794971721273305836945763980303701028851561396829074386771561751660109136175522498537372802125817148422098368344654438781005541036787724915823894896696954564657145218380119226882522679705898688438773994565090912502096382887546794657714090548385419206705050330654918579134630065156108011789968854125871049874523484420250656066402660676565941057317813722536675429408014396591125243872434761339072465581124718443485386770205492667122689788429025574261346987274006154317080803997521697647991130842951425654244329903925771962051850019412337667886905314046125235302364231701708331721709461844205417877570977687594480125777022597599757886418696392052554621291126451201675113320366795445262529413711502300170828772483850900773235198137396220279006582358209721795345226804352666040885484031937609616506525639040996162256621966001311508818711377520295608210473610771825902444927786908925847490801371907738505126184780419859046452576386508368511561650862281323614637873906570753603635673053553991509024099294884509195532165535427732670057036973445465345789860554275467616483272146445417834967495139282849128355273104052305197391042121391520695928339841045438733412671752543489070235348661337398284848091180728207021204949453385226127984348351583373250156714091968099275891786896651276570584391147816216826172787517642649657734301101326685556486925125069732314255094630017891157151171936165482805297648329039289714118012323913662887558813062065319385433325910455927091978471319657416549890491155719543829757942954827980020074665085848076149472988639061495135495820695066332268024251421078227289980158801478274270036364032163898461875589736862457942076320580250341927813889904836139387064146793724537797133446873824381270480903821665720728711488680462835971003470251337924251366543933547358577087486352593796727852913683915780332947119985223171584958936030121343974461749748071307088383586797539152604348380756746514411084843432349718904411243523452084707918410343770307580383272388557141457428998838162765995212300828653474061730739203914805360390650196151629687421086594975442844855182543442904621921219075588518228646882213523101776579625237601909663697656215278869763645232658317411666183335822497826936768421823434025216834396206705467053831486465304889725637532273351141130207993698539875434949987324184316981308331426275570121544035767218070796590499359212014673093962225408341558581855452121698068966525990176471083751068443020896258339135643620669740499492135677636158841262373690622783560993408893171287904409227667075625701261652158244287712707888309046950225585005012008039670878486397821865786167170981463767656364822862364674057647401072999339560527826081400198354213587650662325244980075722923498961247782812424683448052997909017597553814484410255439156577348159738665848934040321038878496134650437962308934583807907881923818058907647875089881371218717684872394526227699345116314132496196028721108000739374186403213115927382896871843831858873922916019062643140426157750433829858030295178222519527902986231836446944434510294805683777410264228403399783695857348411466073615713919969903990399557823026708303730539087942289559413971288739212125318084664257485213214344397112740744875044821730788125816366065882542915697909136687957920027641499666876230174564353606969498279448806697658495553441770933820261283482635067814643204014323678137668670990284542246578725515503827007554063899338490348721913705659575885845960987224035592595543917769691398454592096252485130201916307397056711042161572469646350990370450248886491093347589669971932539375787920712870710012615275393865978992117278615052426496982827250545106049246475643371419853214836636032622396331207819860326489960695126445181283484412989537628010841617965115103525526169697396545666608578502538455702769758452450775359701171202635606856211960114133393862659272294086215908657664979181419200372972619960049066207609453666143825863935790078963088917178842526278125159425234365178919391737710856878857560284222847986914772545824143891698297607421474710294034029013941005112444946579047295844867662924113530934411556842222564970220773611177882827080151764262677796829001027586319478724905009639271669510262231266993066304410574973353754974095109709224028152082385905072151094680528774332465172769421545222289773072792063323963383287990133682147131785706386401606270467436663952476232936338596205153333183588149315868621462189742246639179498865844262160198628877717625506098564362392772933182704625918956371563011999380302715343155197606398949968540140121304375029541890321254436893490307689850695210858437355795134428476294504049631011883906757804043048595124830828555056269017087066122414509217823659664065469867956315217396882339699866408343411860531776598731985908751376941693669680682054924679039784076378706537808695830692919458924297277841595211202792844612587914265253518279744445923083293570397590782491090782198366715493038690046545864178289411738195335935830058712803838352432394237541191551308219530256419813374050912118471514966497957235644121007368894597250518210792288767350665780898086315625548010142955223647154533341289113452552067724241730567694682963866920983893826900994910466451239400463615991816245519968603276017628860536919899363449777811836309023367850909130346303003408231739684787390782290284501226611957211949970668733366897076567559566342668409683818076714951959944735306112779088947639354268161395763486723144830545370527011302735790869481720607221750399344546375594352689914988443022722987150664574840157028779281212918859466569694492500339291036173250335121423253129097883172359684353132728782786892387783718043529417737013126310686364145853048385721173499508457979130729341351321151622259665771908413075755640922858521846677532723955710647331721509530155622140583509935401235532968678552531907420571181987111953481949485332404167266196261639370429979582352955467861840924101674153777872655801515851874392590110017952558274530809029121972056708232339875597071718578443704747517838166190016602485262307625618481702689893311860850211734290738512438166064906568767871639372047628759636358798186617073784595890678089399596560238899466225139458855093401960560674534276560400690629243451782323196731425984939681319242561038332985416228858092825496574927479468275745699170321535167128351442697758358104879957382233898723970233413504342081927062532690386910639792737288988546941558116338450207006828048599118119652547058410521933665871188392325209858669205041483401424462534584982835033099542488975200691596797737436079457678958826040910519172276776288998117034501453734215903779863000438301508866734455248242996018369574290401013349478153034348302105941314450600117734073292240405193230222871870154630566459961976378249338320023982817076401616504220556028789214823303345216120513969244840325301378181134098554732136885069533844975628466277543632881964778152741922078524995201183531491614275103776521766968535955634424953917074030505026913350214794007634414499629684360312604309576991033453005644435477682576823897399796098883854516212111508719429464657293386902099723603259884678016336392554599295546876381841057523180843129663067427271842825990647718468416927839051859077282428448857438123112657886344980313970692480051337749284224696766603336438217714918620240280096100594763798271334022664295943289431624058723480934736449857429779677468376968004090284307405150749904252543622596820422764343915241445719691080308172139125767254689264358779557881201783109733518527273982331382093723395345348864723577378238680577377638429098520171722027145440909163642460137325403299207046508688272136002339857840226618989251692867758868205192875150722420647606809562108813629683010420569162139453209877530530449748429289867460553749432330300050524343562123202432656732000005410740151079496560035992006564221679758297451034471320528510939656484391617613848767363129253418385065639446903319908345041386431095844575549758388662997539309204418599644533655864982603582051785993877533295167061802432680799695104955222006090115125788161455728439771299786171458825321444340644703598057190909173892776621747678805358371660363521095622661992590968189037207407776544530265021075566383228552399546825714229048154058423479013503334909061743430341263296874994022064849527686284954726784934991799175734842566915294825999876653844734333747143746525396793802659547721924451007561746327671404026549600138588321639961158861547476597226472703356219231056587643497737055454226091400464831477563919649125781506890250739686625373374728074725153980798278726305909744857695519925102962625596945476984426400823824494594294804174474598376735096393930578656009892398464463759232135556997379831177121791751363625031553260058472595381023517298245048880574278454978980661478645003347077868784435328851216327916609611466823593644865384976135676941793636819101238572534484489323230047639903430230078622474321773957018571431094898345302659202507734411754360791135547858625463396658395084040723473974277467381150901311821863815620736755812201534434014675047439267839070241982470898439631273174509286282921265058692419309492544123792505626427118789491099187137636453351935760936650337101268300074183588670178923197629641399826466111543228821511238066521889403463232739112034010528150149441680748451559473472535262449286228721637159663342186523414499504135073716617382675660992845551911974547885550502372521220768969729773693554650596366093643494640578174469477167470061537974591999364289600381948882740403334411898171212047253077122710985652289692666153424655171389529002178762557844067427138081760251920160024820085738805831465038019635111579084019470770141000380729716537663410050593753709364024833752412506120024296430104380822703229889238864477995945882210816811823247139132656804714783320445720624063020847578808566657150992093296888324246089250748328801803457765107124873372349946441521288697533987184628267015174218477091542318339940344732394975721224801348003814704838336089072373684627569917139346162936036709825981746644580445769061491967421097946773481670060594227268144596595084308975640095400159738179924755382240247693030273548777858317338789989644640064308422488555174742970205067352926894873523564964344897021836181411040669708906827172758880882173638393638469692154581781866383662321701624045050121919307153480810854542811872781133045246192968892765317771775449867566627408263608127334479208271086494480257151463760519059180818441863982042323587143927754859323217426286908033003480913842060128930960893551055471083650813962047678582126126527670021552382503560600517013953773607063583060428705515457287283720374663932576181939804780836082111657504201949857380561956929649751146100815389270270643294152336719220335679241761163249135066822178401387248950574599805630590437108491044784620332440469709227966980769810328390452505526986436562686992274846937673556324755248997723808320072175300968619308589844225904175551407018392931056554364563898826319943130539540378186700492105830459190002176900594003820545020844750525953929143884350477148914303900220424935582965585307794532629067293065449045927700766419854346037162442895626879859112141178407110095184169097506559725968656344948328582035273957368098809761243974643157631088734724775895583808797103362771668651490889115635735306261381057592183164899678213280428674612192509296287726999964453405259698578433352229342065693162940798948260696335992044805539050072164208052159102013965559501641803582586526528807518033140700709681548089941865412866603553653171703416994623524443398647210020864635846018247324085624566556705073828202406081403490963319302436186565244769425579032174513695878726285153912058929119010663940641299378504698600092846775883704607926298170105413768000222255490292286159772012993296606069479642820585658397878186523774371703096540138032810618012691907774780012415045569032856173106282259354034145590631316271379704811773265610434369686428419498777041058429402341806041800090438697443464886069632194097087351459839378997355172902669083691672990040322298956024869049324526277728476734301664114474107548615793894485846486808362692947811331559343435838642232152342295632161403890952525317136325716821895609640061806392482427527026136881519490798008672357737392483338418138800992652970118596178090443174320811587496088829890226135015409631199867145954106595845642591901687296276779562719767370193709245381533331560518445357674385137360998941666928410692940758161995750223207395325475916968662828212883164936414443557342009558826574329498356174409666006151869851571321110528350138757725099515784069478875119793277692897758502079502456530755991479123352777486211100995358905285754073601018728818183967501244194440366729672713029733790203735903654288520625807716659848079643766854685146136384386284442838087748763105562678313370899742172410019981735273067932185486352033841251729206612469556176560860538826427715253978234261906218345240706603654494602670159068496825285073546813734755648242368003907955477236998591636111055804550261622146493182948870080014737697485868083730165591659814508818843226684925573158267912602259072239434096938173563702733868638915765593166730995183681108353085526148502895976173753102356974154217037514582297694299588067864584560668899762407003060947344348507001247792705401164643139019189278104685353060584562528475591679885484481045047708166972761071887536073734706651639336382223184223350629518166383201842823276469806503725552569371283410270789670481840492705364321246725215030492325727492121644159084325388326175171932370200786352477911802530711695157176044264994360029691831451578576257844212362783940980225477611067698131968039903115954849178226392628467830186982845230500462182233558669885787285740293011682570240866243811305954702026808692888218707380548666430470615363544647797402843535167386842574590195603784903600709216190521259733317950103142936336643781996421850174294339789802018174862035326226799226038644591355422325141373710518215043403152693727223047688707308695282051520709787786834099572378603497104545762974440857661590281812326751722243460931982753608402703380332810522469008997325395824776170020515742389238053715445994184144283141012564636378738975678822636378925410363667751947942747153721450053463793171265631635727597054924386734383293973468942859090969115662042189399594388131361822132180316771478622768668025423252435306097524035761718457997110834856590558734460427295587917940569147020887095119331019197369105473403260028435915510692219729823192271984143738570079220323601569390332530896707051661660335097797853143562915408221390059204351171026131017179116734309152043186787938676789065504538037562859830155662433903935356712229937987171989140361044319414981388219921698448041164597908861673891606738923559100373215786303968053633310788002528301411396988506084941088921887591600408613369739884387419975696655880433460684470614530478164045721449988071066854312538727256528036360522047074631481144418469464223320903408362162808668663057752035267358545008943326491303819009298495925855821964858250144975546939129967206704427246962523473813849735689858868033120977628358006800287343729242530693542207064027749806415038278298044953669798400583481756118831953154398941503343924407465476588205755136448239794230392767441376967944459983779111344795950779684330162296611999857376453740475624393071543127431397155039951935234927754468724756074232228722600410522114080849116345110098387294895869875228758976686896838517693982159854359888361606402145803288476111171365815568295548509963045559921679436239193309880262059547278168492216817677300434225062653591429230991352364024788997725385861856980792848829947784159892126507958926085012371095043482924269540200860279834766581026480790855328103095165792290296111176545099204208231398340365973447280363230402741948507013197250528312262026429974839490666911751545013309458770177537731439522577568349269108002423153211993849388430317077748073242843990079173191457177831400018010447242232267002519377284233392269750054651969296065502176310058059304267439147046307788873902071540657097362499446478218801891052571885243879609653740790116163692623455937630698737127493936192609516270128451508523186624133093915699100810467904008822561154643790437539817093510503466044407495666955602676095041537895406037702063631461052580611466219823217135265399984121285423186897416845647531882318412212773990910058605176213013232973035719064493296782595205029378283606795269461916947700162114148240790374760350690137358844810858754597001612423000986894879802820134769128245603728763300123623279879501980193423005084734167058532149179713009356655538146778138482677842096522944440439962295465348083442546334491900629527209243769132262438110292042361451989363547970569334161029702383085233912989920768147984545197700305204582194264128606491321749554155771074399484252535997914749472525365679704034259590265620400196766961796194440437285664297525846575368521899505257518763078999913027008249391806544152582653452076488398830496862827554420743635647316542133589850326160564856196887878164533939493475317215835036197979822553333701740857128778521734045474419068871337961178220874182537303969004411967433289795951601113407894506375284084362375087995985058542573541576724634984939082770256404999026286716549484352216125348050676056421765519127111394430966394205512927974607648343088339313021276697795970810866750100544914045033466175658663423856130815757056630464237041662148829874008337667517966241689298197642700018604432820894905371685195703120311643127942848015779582636248406094740097231617284018831330915577055419934657903693377007398835084119824243987748965608503709258201243966240394287136134084959154401524617540645094701178882061440815159704504809055865072753496842060226632429975098745523523962005608950132153570924073070427320340076809361038687428460714628512872003603837381512403989431128597224140608052419826693860514665159516997181623096048670350045526315066798300860892041940049420874164333022417990898385188783970621164152378274672559991041249302010737900546587285690143213014864387873551850628848411496473818457452142048708479492552383111749178183890736935821032228171800739157436742789692394081664504656724078036914791450367941190295562421658421872383482317061817961616809091316892022846228580666980665690221104443842074492032670030788874510850850085987130527910260035538506916793523838950130154412614608844804358953466579719551356822627645357611045485342274591106081048409787016082193795167491785762725008008986828500516494144714563016557161546030514980323819750715019790128467604383537409897495214335014991739519835104236784559794351546867752068379499026840792386291418522980992094854228722884277674483106668577729584586578602831595724099571426489888800264678164009876323893788614865799027374589647763790379392938006777902618332272899782742024000891176551043294217935605781029662906538265089844943276350324739071239943487601545095118043705627670091035860584105305134122244506639192949796305210343248501505699717601481490309100406881673896273210456080027071485617426430606716400439097898026954669264055912985206646840406864705522115706516701976547935093184668755732204790763782649288411817139617882469330727298701573264994925698684365621495544565481317088611029276442423961254042910610179455155652288922445940414426829240055095833251828897554998983602635953514377247014229533078602852036933167012649561386025563167597598036980246035485270048641757832479350617927828991150630128710139359106359147281793402263430483072522969469132588143421289046999561514418117377520534694971478361318356847934401648616356652963505919251794012133628681599319785272078126259343586164388266806075696594623076456187509036895719489297361421349997948211096142564384582511035208093583045802933392400851577765241175642673026620477572703370892965637116187202497431243575706794037610942016244595290526234767803534130137093308752468517934403415927985222179297699874656325146968287375128756276889351213016898561970347684539992788885107643990515349308589202012370164336150449291824395288794997034149717273183731273589958313909682566096021293851457263032892995213705560794300400383122114540602628945696967454560015777864347524732946394660793039784416792385942244849789303094318035963150566907141053346621494121932116749520944526683582572486848892296924941217918747801484056037296995620462503713885411589199798162055313484401444078420038341903761838952189982008178558011460369848713680529579951092916952849403950980718173698518430916636415365760359559464460825136953234306748090050197693131590519894938449228587673211046804494368515798137790169715811198758581429116723379097140652943491195355896313447419853078120776361222453537759398090778318273921799790996447877888932305479878164859294350697348189410832071076293162418498850377968153244543658763907531185919687287720630357717858300480545477062002177372635861052221584919106123619619852736342996650311777985598472013276726089691799275114239399173681411200958450782458786254265348074560916079696690105677127343087809714810610951155419368593948287346795079633907240814190693755643235899782599206770725146252398900507420053355066747111930755747677952254540388683952141253829731963462999327907753676668237405183220271385680537615055430491902419274013183371995784565915274423526647826212834521807716807467705807286357197513252797205190863863910104070819064166087523099369852290169745457443311112456129448520758213756417512816111951523739870625516042270569080947164166250485692068006038925675032050656793802588694851628452529896142947844973712083854085428578494164445243800860552408311951932444475596092947069607189379888571676087516329220877039486916025772567394394488383672223489836217018434350018972912111261951112915595291255582444942473665722242869941831244509014547077541199380274062338997785120029140683657548642366020185454541018762309051991068478959262484196135241599429042594503489829747043079563193471255077097856287809775763536950383877871684769806588498957398512844598789144602796636343943798742792532473289960298005996870903363052316110891215682470304000231878304304090011302984134405622631255160588732860201554881649223632220214487299764578390250575245480964779053184785962915871416833013854406147394744127648772454720428383399936560477830910841028759358609070267954499857962277944329032232422284096400911118484631528977588386244578836082745948312849230183041662622672034627680330614156801807611180765514313145271292028458395398285072483547554547489258782868267063979816248703948111098760164290085264322580310181555261793489514316116593304211155071312538189386937109817331188418651496085479489418748601966769104981682446633925809097831058269689084583477283174796615358375783119602659755695054788399838952176873456970105106673247086530209450433930805475195684733072050438832595859235177369516194437263595689618636091407670205793239650917080033380822823510606719087522721391975480867908717726103921547118714867943287987552045821801089747475538152908625285135098357394115560984192861042158147292084949604338857594532929685607487907008418609123499884590867572953898665336263038076219453496144448244441155740419773864718148689480673707831778219795471902706706241861246026318005418553100455844913248752378618484084892047608888511316627000794520514125599175450462815747041651870125106987551639005904824630601141216304498449180594132262348251262436556735880278249151978623841976371858034857686566935671976456663042529823842811512329934874131116899513446284805591141799341474937748362269154561645374887210752541109929202610149953425077274669807845127980104570804943253747721556066046469633091685353407820591836787560741300034644777658475473674052176880431733314286114871650449794451726196011261159491422933365926129917076682913239207283858559172161338187259724521929943840108238227990099855060961705553855065544844695320907322242394769097316992235946769759817752329655165134804761638236805240969887782219759459011082651738192758090289881834231304566220954341517708155580236207553672077467753364761550626642735869877391325715611972365135501555488932603481550439093434442107679410988514867744761980295269232183680317693922148666121078206524297298935714000539421530199680127300747895444329132888244091524012492868593033323866003763189607078611023433102633557872953798470390937528125490553260161315164616634008939998389177662501416975947252006317734680081010916715532362324821540363723336920347336044947588529696486175803269856697756622030486332505568744604161139155536759347897003863439645808564273600667659218744754867925879218772378999560895220191083585962284670345125325461294387665549466837526929904090412511834532237165059008320881599816936274816504292475036109978940239681405933284161961929243368117327820528417727623078672369349829484083213635646882994912946054699029685817669986243747313493562470501375238399136853111963219186438500201971949212294850440560564568516230322000676088038045447175171211430599735791185099872580441841413224344977823967986484403329333855832245818655578284358126789931944360599149843619067672013525204671974109302011935639369531161160956072985694428072157542751098229547766657344510809927109878132643041130322607006506850448031011022350492930715784450339465636635916250773184446585726488993505301079110455742714901961063095027741659687137696818396956460323762893404192191228005433936733992414107734647048775984946515476489731309471901657116863972020262137793263628077750490756856836742240150398280541239578139172033158689403124164641449675028291430077038051369369543502122679925939624036861885525747482334326844784772791646416562486153163543390350604477770528548292245436370534901322881053672061419966724503624773827283166210482297162718568812289183827351360132803603953972251126952818736115370571760824822985062042271707943658197878835321179344120473456691798396938134305554940650290005995155888781309020761049263766769116032846669546955761291846531541198528835697413104668820756753284892449601037844863730452070032996262618372642981842843834765252202494411434317003435657423074776562444451212648152739361133371132445372487349577102902943246467356136341574447997069123819222086977762457243049151399512238694075304698892063863655654540855224028148214991408077118071023039868707158658371446701918012877443930605055716876705536437877152929540208325713284155601393966439734185177718712139646514150592356327880783005251379345893447364873338875833886190691525931956079074794902284259453078359371902319717529725037222999373483996239608395024916924958515472723618600302215514804856849829501146929186550845355662823843272348758060398332484056859426411021026426340573931356865928687446136153816363106845794443089689626628758679604885094583880798685402471976898481006236565058169072953641966866432067657482793445173654140986650910939829983437705891965835798733607867180871674957481344749289003746474547440460476104289048587798955021962350931194883707709126587361447351226674514048763032380704606698784106329513940212451355425226708123412693212836356031986782719416658469822226816412316882620505052397560438611035275786580523368248181430631887383469227990486230661574615356585351622590267640562758136109438668813703220352541210555412432376165622779119410026277982976056220376043780564023150410878957738349179385191128502078251175179346848755781498405244102659507030134221907240359529782613607896566580444176707464019838139542499592956124570201064411637086484774327721162855782304306830947723576956609703097583055085457263168111380762502913841799078454126461199455436009860720798090057973411237723077155877689975303076938301536356531102410197995644753515251137026604163456386289945967109734908922493800738429817329736697424432289367245330459315492089494484156358566853276014075437818816853580873683877320307689811323116864616941988807983752830263633924169485811372555466994974930431886049455294846339877517758490712568963369953556035446664483990095110964142065039338281359093532952056199191607593117560324678812891353403451559270059230766830916080911738836476878327410526080701302491596926752395855273654832329311217950502267067979304989266741051313139890468343177844553091154294493203145703768913749414299437543796250152506161021215431371468143082813289179950612814726209821340444951578976653161424601314384726328578467375181283422357788674259077820947540237683837926989261728312602013698800414290434199071000958324495595586016842499170137929633910987482952695349852980648370842864854136326151385877670109020193045016716739940850506660706026071329814797059355179012096088670575747758352096860238846435242040882803065277385998591692788926441885705696285067097440143995281978560718367862016078743591206305042340635305140304182111996013072180650649613892692598992096539400841670416615310652017492476396982003919630623365035218393429891826856081180352563501794297808965574212074142525893692498579832954914704333707362595799528698000657395261354413548218309804847742655598459414983431026072703367665036668738756984576143187171924035471690299220817416366582432889398584926065120291213597062983139596614501494787519197958237940024872897562626564591836218641943988166295302328020319362247348485015811921632883737839423844519281986630931042798817335361346967945803240192649041564582361381630224985733531466780318080481246696162228593413061142890286257018402773606221726350615007128307489920218460689466300023967809550955273156910213674539290903121197815413835137328300397085488843207853503738899382022468224820558333776581401970850433945498198189938731564632471009338108959966945979554482337837574045402667159734192234116288693995331123356891780919999633559611376588063178081848905001048938007805438943087698239429988260658542433681947190648417065038744569326357894771451623689302095522247177586835167521037684167971799940669060631059377094846097617027566058199269174051632155945912495975381599009057341359589086940563965029746165566904684574361641488333766375177880631149291603403983611883099529904778921827725774294760350422702858009411431976154710284633869527374829133606029642208145016780106097253323073622315208244297142149248465783116774004689141270409123045312677433421164852962574196961289456812973107340125812815065350812393427944869467570352688521263263542780227080399586176032891649355315905226095756876463059992813413083777646653463823676476916621736185968507320530330340971031939453360007076217647660016590204314964917258425961358040713103861929167519652665769058379591288274675113092869509608078566068862776107452822219176495422780546296081196207898201741047639891373638186830485972441737347671694367048076854737976854596194854357813211841324232765387907208619600575797798054143309511671522028024702907178304499764294427894642576168804589999763056454121482187397144241870111905577222424683284967431108886468041180873076269246870741728147324975247876717430792098304960415051368821178433008517975117565749424849897795007490655640975774959223864209071224474922272161192292946984022724267898303541380825485206167059056788222467212635878337937319228486840687982271752318427317053294548496985477976054747282801229842491251448768961823255636957027929839017808109058847140054829345862430612534209293932225433517309751573604626513885512644252865679279321110880386119537470010755676683082840715323217736953879804093231582941462059898119686646920592144431133436151982412741895394021524941201432279765235313950009789447290936184353320604657018358471651723010173826688050688975606434556475985417766468748552684593483088047442997922196187120505995027309283930736000865358672108649538648328942632435929896794162048826822158656270391278449799956024286085944735797636761464794334563952565919166443592935396600126921687467825064386662783655069408383854389006133881995531749227277549455760024795200840395751034965932707962666338822734133533422293293336345911424581094233484082787109774126048861280429086046676138569966833042359775576171506466983218857619597563588757366275734921578331830553785799076778901955164310786944239555421399774324895952955651892829631623851465484440399247788460498895236661639585595659940371018980995260514478192732972580943243443857783816663130412979889258703985181500650855204000248066493059170830451872296859539871741795554203796381897987795025912037094653361466176356603947419399209208237024012229554051712873524403856064050415130039448523261762718878646191021136860675620439110209603361559802716080243286581904960453819470746977982896060218153389308166196036712299877413663620919659575507874284835925418269505664472374225323666616834667580028272683533911122916727214176776087696345061976590477280367879551920705781731096697338409952453107684495942576387733496251816447517931270987539485373321962668913152602657357181874181908060493567639037186697206172976367127446896679938553459076252521919807578039283256680341961947918756625619422743708950697295705192956327680793773849544098967607991018164111607550918845835356696390635496765566875509434561333235091140955237397438403396152232753077330655576327954750392405357320511797738080809888741382763026060151266163692007229903672664755937549205367431475254270130528910659584865786658230647938888779144461600644552246509459078843084551131212616690065114396854546385932544043112465033648404351081658692941122646481987366952385683118708255347434792540749327458130875436759046455076966779152151527064140152931161031513961559698579138396978610036383301021258532926023230792252199568192328580547989908805280370583130819006414209814829395096273240992716937719160513992109021211225574147416575655205063953005663733466794858769284693249439143417286615492806547561123685171889692907346806832625218996358995803773335353776377064272395889944419469145882432456133802421237643632934681684597928409113853779256182588159470729629375354897023226807308634781904960143445175359475921750945012774078786240222146758320581864234201899905711794922361044104063648100742881091934575836609099170656639368572712157474184462831328850866322152069710519305092384153525725836251143710477823975367958459882567182231985610172893096828177235065225289685981612719919283878061782039172661397363279931805098861589338668061785525543338434330495393340204724085102978799315156183835722805107191972283605945090613762664187267152793637158461643867951582233781718256362043266351546767957261601890917739294667135261224895823905823138864368529943121537707723943985518622021030368125172247448292492940848831203656434914216172083733973140437071435537558705646253438262432867190069950622390474209107720144731918044207226654534124980659819885811424878763712591904119393438161445272710066381463822997936098078620110443166769348532749134880750910359284581696993688823579795108084766321678359754043271235114591278658021103198433904938186469416776527601694625045264890564919397529317998654866887935271320589039462962653628344883997120775806185110710005302711056959645565555648583875958036877351648093652734699798720351226182702218551212431981270151106083179443824280522285513119787261956476065935346996811824906739713159584882398043680633029611711121482097672879875550676447925769473315998302871588731308757707814975250189042177955773966136232108244161362657340003290366699361022998931397854460988337549460159112842259205005029792012109928879438305807480345658491757972010755267419144753266538882638637751201509460365737366738646746362990958117795499518966442060506583066539251027666751578073955993552091610393764387877877753122224394885329422817570031517692699921011074563739984090161329189772999357874998816939975741603651209380795762417333630600003925345532561457372697430154380226268477836755555025277956927943378705405349420422590014559714237033384366281334930136744369827195313023077377939060061325490952624325530822377150690477800500578115950431829394931305917719969148287153477852642526887085979254444913147533847715091341181078349142779473328302080900746756011883358324022479058524922750616962504970800775377388799073440067120333303139006431752986999210818108187937743351565929808653705540749941920530122946184921918508154865550282373973603847191625223630881391990298581023061439754337129172538894778017728657247515082085556642514240202572926970655959360705509336700569196574728987898535677422820951915309783302510689197462574831484903847795203045981783909296626117237951074142918458814701090397722593222032006785835689529318978066884645554837370696212494568224607184780163201462545188586744202450005492109502523940833175361442644359208221987847946385143449753321989806418915643100427053960288223117221527980589370321235474607108202023138270698181400236683605153788345813923822680659005395306778598291244995057317571687948409709058835020204581988606049447824910667653654040309236786038010248342144214557977957460469136127607038230201326455491650484306791535456084617249348562888899075321947589284437224801975100957418472830331056968314608859569107082092236083080517826190264497705649789186498627864678840164996588035376821698641304821584391664734074586697529031861501868408105859762247650418829614819713530441615712945649729383028091494816569362088640786533384955382208213909162307365526239496563250564673228835821027076216797844896064211537642244826372008709513488272415923671103550633925438579473808158126545470259420410793070667225769836368124897843175958974781993488048666638256878499015446379494349505379397660020222890671222471554355862371774378993475341055303722366402206890060372713394606429414010595295307822006773449780408444733941212482551497728484112252806450578261149624730121660435528734977805400461234621053977506261577132905753192203249521585879014291240133906952583268749536354145977499227585797128982779411924849803482782889144337315019737229675113320759953517905004541447782806626380700154310934840695899071832439889374380552839916001226249192800477055545301438674800798195623064844631573993432275282718193500675059965181947010214144834386792097684871594751111925119047201286543716101397151804190766636236371676976674428093860549351012100334208038356095426242917285613707484267611906019248270559601850210021920183262276533938918472066950614305709834699458933190723697499915043577944214384567767742535777946886379822535633129432408270050942096100800297366284153368303543710845796405532483198903119375144939048762381244075739969200214582303429014818973536332818341632255813285284916552158034594577727744231852317951230357446836247659648652438803873809372378637168266270244467111178315982756445983528228421460624050884444256700598727586752463392805517509704405409125725048727180297994717159291946591233996327181420270612400040660747800060555483483948247627225935781289196102150348690278555367499001358052195977341273847305379362584737016772124902327242844674192527116855812440169977200310895186109975243334792518920923846693466114738519629136992173375581627043478933727197039942789212941660888076853323758975101426315539452859149057594263964808233480845355150356742332171310331916930642725043574182321247204113187941585552170491424114182288909689765897373602713665609142905313633227152591567737874354091043842564464861356086620514825596604561471192670951206423946233945436228440791972599072755715253283218068338059498029010035250130194230480827537210281993331293991105843519111616389655740334442156057331676220445166702549314226522869066330380869220609997592138249052562054944741012887936192431187134712129535705310120383079630392733823779267161449452881988495536809874181634962565917749978868787681406519546150424237200793368432539440452861772940248334100223769721159501791576353056820397330501427947776524375728638533246021451410628868770584974868008122457050153118034395308534409899823832757591972868750673330351534666162447070187960033979265649512798049670647951088432481610406055469075333749548325481885786803195878024200438376671107244261013636060211982869277508322062147872028668945363655383125198205064277058478624143635475096837124618927044711703214474871826913540793973491539763561545169094785085919710273285002367454308610743133363999950963144481461463235776010510303553610535720295374682762273573351627636888891298727689292426330935391561643018831318929463845499387732382829681735986316005697615158134728837382291168317120760760379421132389049570992228473332728194390810159965528264123594858288407106087866928353929618291156016510751473163226007512092484660263705296973420635063621481748144337722974302835589284738364014148398472606991835139519486426700528748384175465370835978241662469766305820859037819275649728376824086188058629150319496184565735516072991198532956675211830827162487340522055582100865140444318080460318854305188145678597033508892976100387784684864047997287428155859093073699647182128721812092367817233552707425352737376535223938929057164536493713177823596480373332344612379857600565767908678768678421248109105121432121285286778910931837792283923604445616754334899407230546609435273069861788013928034329599277134213579801937932682288553969216926921623233638430369870131314937971535389597064145811385768768102484734364632962311678692211529346672608422288496679697414787456194834408486806369238913378349726179805860127737736419808824596166681302761007073885433982079729129027308024331510825565413311179864545700926196688023917207791897724102913840096090390654251920721534162703652152657898159060821072706517155573126952284788523980781901353138742083364522685550020370718458488537918374603131142918761556390670509542090019254771783916991898698757712937535251851013763054468365439456486794122561487146860616608068281916838312231547966727276459046023319093209455539568167487672664024123366865493042248815445349537609773823306385345234484044212893359757066080156462266972845704767529516472042659855033742249812012729666070194800899686406587053236789383158934171511639719173309280801962579608229307872310843288547521576017947919811562136721840291877714949651844763732071511019607726440699403653664789354476297497267806450110006105545201592449825345755049404379899015962997442317531612124565691012628895428704287591302493945796553981752345009972839550154936099713401426668995637726338964680904583885366228831770335881347688946659107336708975606654336977827193484259030389610838765929758470426422436146495603480420647763954247855995560481604474479195386759064556143866749498838872763446292681537119861009895376904838771964965829943511793966930798814403823011591895021079991219836934523577297976655181823652255350558181250083642378126242606762353398227011557422254335368420885781961658456996206912259573618549855383605886274061144376986466856738526221765085576291837466019241011531478944756200532184229755485355907359138281583246782125077846636823028776890128908185138241434101307322306380208796353861313634838065022668425846094973623063453830482281585191814956482079463987470524587388138857468091360743160946544235687494581317821962073751047299506672721236192570346944905736460019743278654180911130533798194233419742202834330290637534061565262162009814650734491047682101918033176531178206725802642183667019187840915608264342295831688779485666903179516017061854904714742120281185126787254682782575819439507281159630582193136336309159043651847027065029060041837411586045219057660233877688902182134817437017845294869870546612190557801458424788088465265129712970844352786108596388383298784837892285007909020475829956812104174336327302503612568243050600159848403703406721601642338631315607407464927359395607711604033886982915167324528967561131376705176558742347283709071835069739974941716178217250796112362443377444023042888549715110277010730369339847826332488463584129215149658073797267627437246202030546216285930131283562568503583998922090658741357451711050516063664357530195825946180396709497562031244760609044321842452035683492005954790899746225621711858861371311953360809017606615435905160982004334130366615709350438491496989357804854475126023985441725708179735047768374668418403019979222011023813452736711588629220378701072958248301177775952810094392659667752228197133102404915048845686324062496932044542444526867117089774428927696087041518181468820195216643923669346669515393686415544656529091559895073789594746739148892609186083256819174455476555651975807581466623720339173701763985155513646748874970981037866850782557202935658153692217033591966749734257596351512223472789700081276567348710157691430268724298969109831112541471742951499680042051128297202879194711504197653997232756339721475209663935387678922765575576508069502569560897513201389643344424411026749963686778369525375239875068662540253757253954315508064683733080243534766522656987327896770069251941303050379592273834022647515003916187713739135452542372758154026711962127901929391020937940566078227400962272438204805667770409784229202279726448039594895729851410570447623114272757057692290123588201137786704634438430693226640589019765224595219879749339628330649566200558460314092811608072502403948237714052213144279585607719225786862740766232663772423589141416190015054208423242330170612370411391094871581483895554062152647394717424185010597714929022173375089328806601357540639069608392075375722736781171139712252408465805773674799452219643015022429132154425181025902168884942096649393697626181160944625878434573385293635455054203513058117121333723417617655721901906234759496040933205544538804588727828816045009593667365897232041499969681404672029819934353376201678507889651671053295010831277696134313449191305324783129681578864045734735679800711352551133252574749247194573717591333130463935450106492064484118673125290800633062079179872488478685563920781871201963274322676421021277384710511842127931102346857316023545523171966305283121348147361723320464707568470153944727291008550754244170093336388542143416177904927067720226967441491546482129517165151210006165298526873223874609856220665654033234847960628009691002578949498262850668143598310643293648969050200602919393585748610476744228539322659587558160743448195580535750476382068652815418856733647315061913562892552452195029955315997165323026141596933302746788324546428832334173361936201079218344437899220456833994049783346037777450330539313582676798305990784207424207724411895871757823443113566887771370549652476468794741797630099254082083677320620358104744368291871284298569278954139620513002313156970341114292279786629830582682246069908977166381779697565392286496077289920756321689889172010637416462273647514740045656825228663093320902304124511114042543817254426544760577052215821628127827199400635312870471280353920586370350645913505977362155427095823207998243910873347499145405832677531312088314936824521905647122683047294339591703039268656380426807404966056798732509537321790967844085770388450170702828352486428239592592850140023781573625880467288419110226253701220141058916527303901730650949077881392388636783640617291603856617853543978080251947969294914880448894247843538488560814393941394772125427716629106106237850732318502852248513094226517795308981499736118680991894766615940038593909363856695376368567798910640134781075113857972404589728510439457777497452911631041462339798903033099393455799101868407228004145880568669667461480875369013114631716589474881175476893732185127782150337721602584553101449603461520940727795022602597367220426827117355267662699647971465599385160376878440911231834831024115861025613889597669163244127745491692875003927443220075903664253654363218009790177317196061077410422223385154180404529443487877313189684239328101834834322557575030043403008471768338831775137585015749556857430596608211804318850690790121159299321748147163492558180429182129465110191049643626136213268430505746242003859546203042922980885191774879495452324583465098463052395185720308798723266814110077273256300144259800228385846021965691164438724272718196148074553603074490602612116748619828062508438644028948003398100173098790582893332993125301373373966534674089880126307342862771035872709008096515429742421120530002980736843523550432478117828190130330190978569189054808198044693275999392542464001922532167538211922434951811381111625581497519177689834782494410493682156550264809956896506204541440998797929682226964245620635356647525382669854130397435798332114244131995532874251899534292700484035352003308204227067990879681502763772718556584283978638583200233061967244026385478889618401777063410220878118073196697418239480003494648096327519893558340729609071925207715735464049099268941083375155636519100739957392687752396117020730926495786254863563893703581969820237132095833191725162488254615786085403060610533188836108860257893524276079142845124829309109806235255683183666078602820789565866100922094006759819980023015819093758781830347046921099709016493176990804161839081004192077427705012099629008713665525952044408370806175178020278419984075416424488562250621312910869179238995614773401313223362227257192012437683098746853483607549903596863092988015983749189064789510349309302680356411694362186537316911831191228668491403092075521597993572736510275278121715684013706322258229767062496760130795480114341205808439170359685529502069748882987362223088070014953731452771440756213566425541757278861261156857812337281305664202047431771274902327354536977660069587353796284483443449628323850199859957162424436460228501232663003738067563184889569205578615795690466906111468903008274517852096676885570261105394428390227367997618567024728440394307696387499205042557058663899742446996354106594583538099956545385696253797494903567503482676436703660731673700899052158078587077264727180624089957068685303074412468621672141179191400744085752345505179845622449976320409946301338369979478672393484854811346904724655540034164813806132486223682826245467570436794264301802280367908268045281044654887015459623377783671490297166048093847495426263245107935058533929652068387649007424979002071881984118436831049658617293171960836684954709363493431070791730244287929354858512948457336781238316422153978389760745454658903538085483116333373922313375514200654314372039441895043665102621355147853717887452705350301601699308298956126856451301003895489558695034377954284346640729804359852876821806554603358349933263386112957799682837642263597865950120332838769326029879968849316433858838434001036257142300702092411353969576898906825485663673205341990694431720435994335136151750705064347730095534558681987108936814802528281042933128170149530382420795324190136827472681691334144428598818016359115687995491016707875223555826746848905495846616743042461895209874771693952908508597694786937124329296750326777420190373355211056348227744275180683414313280311389411369088336725931318699344099583321807845002540410661884124106134819033915149510207809999153560007900469658854387060861314161147487983253048700327924227547224074648336927157232635623233988722332267684223229024918166576796370508428967403957685279853988836066033121736333209533452705390638795153239810608808670215267549960937717487066669846490060628766594897996473641894986003272344076076487505069162218957511080424992146121676021681971333018422072812131015083634340594571092212568245425113329006616427756897568851637323138312984285945429677666064255942795794701326229502593651785250888907085138248199266070340454673967677620224347996936588977834542315733817889759302984055962289572378439656689028708349498742610250875123137992544639732058242808184845936717455174888366315213631057280118097121809990433922939809207424421758476283575012666170311790149974458212748765549079349912570331086690666002644993036123269486137224953409084299842144858433701773111807798832197422738681097009043358396567017566615519121820812084579947640046219262829837654071274580638670235262309664458114045002971545266711274819562759574727310558730860645145304986350272088188190978705827139670935387018711306542941144549146538380067875579929060469645664030102415174997243696673381718483876773817085369039702247186417707292819389463914690304429407395886771976028411932459064504638767221967874372407301590134458111450487100499715693633053310907532450878849403098467831249623181757398213826599455721152253235241451491356867457512104307106775921410446401758718250560696657118676388558879063187126878072765143265618259872557118601610286018136070518586688591859319172358498462968756369597152405794463786347923983706064349358245159954864064580257487471077636543468545354711732657019677628193109635286221829128721782433943918979371019188002091354172648013529528986051461500778275766977680167132332461996266644399937632309588565293701357367967516242969476677542608126739921322933095567801125119055579676044660464440922396052408454920136836448962188802908668695737395273935968137007946232044131561326948203097821582967696550353235973738586622278657384791642508298987604600864710595181246286177368640660481918676564116427787863329038877534797298937471374057061686753150715574609459009802093954072788299984237373628749532232599561321959019143571463493166147969492262102287736495701786076831536029255089873955969077403190898256166504041826147460256907984158404282719408559954415507657348137997063565725708973297411886823542282325133923913050439518904578872270045188180740113928420451698421416675386921634956827083550977565539661342524397854569174772885375132969519627715335310503846088530588943528746964520230084600012538829694207869067322729461460762722254938842142445090867472568034486175700776013075427894558964326219077990131795579534368245423940863215424159279987518035163295966823373144133843242968281804928848155708012724889568136681863928620234450994943806345111311986802533680070552737246920114820891348404781614456177567668299104327278771121958432172830388632936714988292436787156050618868302649754067471821804561024702031694693431452655098978602873729766747079320717583332043588378190679697175288465907612086266825469539359877600681200352067516988769966057882986665709096451950230342479501046261564755211387679353242843135302046417540105056760664941858518739987101326885950884903801472705195740920415422864069166937526552421543134560875400721943470085643822722475858561361157428524115903128845772057432237008210345761155060644252113136274913766705505820291188563420324961935191629489619131456125261598275337069395540783611346222390998053606868483541361152934647864217258809979060136829607909842029204009944825351734611273884073872369032004339595454125852021930359751444577255759606513811589241404322000809109156874554035268268228130420153170147372672002814379263087211917436213251500789083922250345580827746334850546212205744369019363069693192198645035316759405609558899424230258010301924957774384483879656010580102756462665476127910841676307036595707705454373237653350578343646361402188765007607586270326706526180947082245706531260752378927569223792350712260219976697676306866472216100650189759523265783965400232850263290481116134366019159105172694703712178544962676433237885289906059017609817497952605001703718949662714368864702826363509053278382998444844465983058692907834926983353297213194648290124502045647509933279325744240829077111547843254357673254584790433843591240665760810620122427466524886589483051409461767735227598977511507840677653328009046225315296674044437030134342365629321887648586856823626979735766420029769247190742186490087144176192725006530289377026243070635563059766917819764843370640946662278903715970704801361351928674059324772269885025312158389123153812446222165664213377035491349308079103250597374706596123675031785084807193533297330827931519607147947883170923984811467618520654192339911387106099589343873166274813158116126919779635620361869264179463711886954850275125377389704191148002481703031388886388198092321052313595933928349761261210209476811243431823612556696608127198660436395343511337116915733426944583223984873765141877095912714356744131518794232167638932639313052569529745817332515477654304098605102768021819327600709060948604960052774968583922736091281764004371089281370933189522065648527112492073054439740798590350358476020934270866927911764191217354099441727998174979621607449162768170655380512553909333431403957968991316779101336477600566282494294093146539640598367665581186263324745251600386713399455103005915932091277975392024031456301089651405410335936485279808162477837146313967367635595387721202184582341720872705980437753570296325975795188283096954503821489747507088167157905802032932502489043294449286579573257828996394674381519304238594062050495826997280090395419349367846500641241929079350152225312130464647285426546924441349746336130373944525557673304714855931956506577078421355411412433400053523550091374427251907883013032106836910305978946683437650061440239728850922498737098275574608394596493545796777217755303659573501184866863312935674489297373801651656633374158427370528158111218814845178133122752881589941375817403255599068359299282413824418920528595325345856368068116416815308754287667717616433928383876081911875831489597731541290243087098780201274468889199696907412397240463616035232541236273121543002157425406816219596816980934623830666731561063844426515392320503058986707234999308226420048254454590573689408837975863594785054933844426153730635522008309874960212252180602801255164079454202623933211726210782517074541338705692779860976237707768075405326066433444116488327168757561379570981616388487768276837857111311704698409103031856738893177128236381890001704919837901929896700304493234794790186411452771880096434626134379995474764732834133880264382758797974420779473752070625852884133854077552887778227906010422930448623751179265005664548557859109016500834462697720970041546960966459486265723526601792060680558201254554648193614454144958916915971085232087680594158798082875550947365564617693572247880771021607842100599032487460237421253138097419608311609235253506039590592862258781525682135018144479931501492015895850448389267713867426605355930837093061772668674129962453218946884504119311016721020518590958381616384050529516040354409579167431860789533552726710922157315149662440994508939499309719358971576405549864243978883208447474521782397722327841724199742738876743144979183294549785729433423491449885678415321385286715483675606526466477567721735703518235621359787690695968771152679195469500825981083592222096603804858321800106236254215916824354437122802319025072536663963972429386609206353683197536707149935234731642546250746465322000933395155236534378842359469867155488706232855555871597725528783635647877894935498775875022552118647318341259143767864200093368141756271759335002822332162324966789769058233027263124519528019527866285819033668935720383414518762931204152775857794354987875318712136689569880559575492025650939933989875200560315161614292074381872079543315063522383043266067626848588875199540355743182875591398687902284469428260406317342276091221036279307102276748039053367859214098571973215296506959049521616818250418862910110159463031844217229234530310600951170514058542196849970616611006843077310075986779575136360520424708894335967632429084529597559616794752255325574337365099845636905478235835803759182659311948754577533082173210335046842962170742549350720985253092346964588767399811063140405360630723034897697813833994799450413179038669608646441285930764808957167592044602326845161497554731414857951640601812665441964156337958530375399712594394083937160127323674956326035408074207338884836291810396400161963395541311452138331082014740925109295747712199509434869519364712787835113487741936873560998421489801553576339207770975931962113387466922332644568353843180395802671789740840488023011723163871832408765117335958506740515959428245634616709243439660968774258335241083642860527042753795985340383885678238585825910713922707723544387389782684164756661087010737873536740142402265919879579177334172074651457634624644611500944018995756531753307218143067981184679671125765935224967795714307344705620176436651254766081968820126450029254432492755368902208985175922919033530186969335896537041430588679754997236341743887081770650698090586232850348902842429757615356957465458939330414116840898486929293084880942783869545270434013045492820755415001611622936773319668975367866655467996520538392242982257319289389091633670223006592683340063033432692431717163770349899146306022089119188022218275153675103210374678978253278584601306408535610224760367977195968224770000582050912316195846170039930190047795653667893423108027137313423173260028746580948713627559744486023910861579441143456535858915653037831786274906798025780718783085366743034623319915753868814360113671989513115322976920499186409641316672104140438555418962637009614459608051766041067326985266561184630625662746761566793450021172460723821196459131567369550904797137811882320025243163957053882913397130738139965157500128411542928557127822562432229827695964240800622267600330300876924268601996299726784991887644246923434532761057605524122464663660159144324572295728227991102399896637315274462049450364993062907350087522507013541930721240892179634376751527653817298720387273018312402933953201724598282284754985547877665992100363677875526637807371926716118392182601433055112039751010086162583235384935596400627430077883245453023900444059145345367878219760119636170514509392410009309564330486395506054500754015870227845373637134849979102830877577989142893692288603136174866918202521716871981519665532060112811075662159161532663037315586263075322600322452030865699665110652697076427850118220599028683109536232090435649875859758053440298292716324904771985141292917453551433239457208550904898112577071420524993598490386445141782939594987400113000818152686120138340822905367862476381337080142984017094862996121232751095851331892115335497669479896722181839621979459935445192463479822256419125347018658557415518815562506918828808539588806880521732860061531841268379979886216050316782763094338228150006086051438014998399252582222953138613680280626807048609253476934976401432228665867036728158254457693968118436949040344976638059060225109140107153990984907563117517258850208102694348674445694722565308564676808577326972335559966161470095370684396969068585990934942529999189754436875802972231823123183037570365925234261065198140316052711738308146860295523840326547600096725450237263496425708571109206028860677007551906259288347803038248929715733520605696371423683354571797644822054867967544036893467081390661551695822334956054197913727634834407574600256715935703780424912246280228369691092421295149154105098211727277517929958411688765988164294798385216929951472729045691168066162861852806485860743667272061229296176839113265102616290722816846948665164141858114996472468697203071379464271449431902335940307737218419772455064843755342075029321683288694432299713664876566246272096055650295315649367505740790514975067850354346513180181321706608956545878602687780844076632734061526647303782179588238230153983563025361480583792155113449416627557054609532926674781028656811278062795577549290400213356577765606988200839895509314823901898966818924898259728282276284919299888343225268276958076615658395797285992492791548678368292003500527511105714929049487886374568872796695658907685101435279959366200193812584001085539217713328794723241528635417460619729589010175309238906862462491654971021060517709713558386722636104974025454016593046044812830497742897525773781542477502324480779683135156932399182053700036219997161069967490810438500623931460723785541094043952878340032960257017309922468580905881930954428988233919262471616221985445311166960255373100061247583255313020763185711032621459993979862238258066051985542679582787701100213375770515109720523326158690552828694344554609145105015157439071664300726053320228982043358537995214959745128243090163416649509826803985301658207979437638681319889611278309863811593636491509850207595233089563140869539533916470822352122654240559292311698253675519209333267333670804864368800991090124141614766750344313630352466235066808596425894342803419273082273039240668403342721059996110525567013753003586292008303817168218999828808521945107862241755333669979254530306860589123651661780170036130109067226772491892151349796503068479512867670769968777062917501952722198923948743825420219036538706726428525042110748057987981482982737480738167305346333221137654174602301495484595957791927866214994126514359693486004223993156224002116258452154347866650501876509564427914422165121741468941183838554627918096600092896422244782089831941580018950287819956157129432077929628492239548624118528236297925215519056097100855209065251664831100431576549493411042414194179854614213913199415850541502850446074316936425252472483510070818899752377596352413115225351105679390445238327329425336453938204492997973224355588114449232267647160751265464743910844678614883615890772961452307169039455218743129909292093344844583811196082137246235796500444530860067401904571970821659874722557137633926733447597006008598159152581030626964200640852781619226287962715752361828509465016545816799042625710275390773786276109531569800685004871420654563415899940304888999633106139816938793586436329176500559999277815308165181902555008753817048386160374754470252172992884569990050806971367972361180615579932449666674860875905877907386507180329074463548311155606904219200099306540656572231822119344566436854252063119192485372473564056080332823138393455555288275505493513831215540614590249373452211506768181923292303613899386926349973943990983532097609449151341796667310126030616278892493444191843916556253130619051091896101775254685999135511210257924243843643499090336484736898044271339802271400844720985502271005930444236438925394835147878538943935609599135446625238096217546621718933869629080820436058529396877592550370320096168942181712861498133518771024455518302062961685629470554275047283921456752840139524801678982329498430462187756046701379729786813628976447041261024074784556888304472274375488520901056490464515498879160155354569422636910545299929288731901548756857248835272264723647222534783474040837351710495297925516446244430200719874481159189922469368471447451893236439839443423080617475789445291916867352249139756435700438845504155832036663337548596911886452037885648151482452843798521271485336146514676436503633625816366443105760421545926463778496649425755591775394097144932778436515724004871120012219018165698737753880626368577906191005681929204511457305114077415704705894230468951657166238799470388652100286642257370342136561547858521620561599838451703100189356654311046153721057007090375954865911820372818801401963391504576195002480372044428612869138811514772109215798474489005263177829040199713625777652163559483978174755694644561287453875693787081561403261272344103096402870650950108427370757222800994055746586302924653409606124641840475646258849005033172414848535735569228635683088184058551492788013282660717689768702906248092080869766178728516543188242044654349721538517871224201622636509635271467476229260773648762549013067687466766820258187261028664919810606254923020202896319858655627896639477951541661203656883148271052816437933554037506234056516122035667087122086285204039449534641141426349311337857145706944933952072466751199852947956200939797872513937523678486474955797506641794924601130747315236822623525888698531082270603631065810753170763818085137332092344209963903002566075917256406104542713015430045361070203942044490054896770536721529860723380161723225830092423631791676349271389224343334956684019909255891656670864145308200902271768541495087250724002139777134331226643157051896076448988542597095575789945898289198210516585763461795371428061124425162201712889824832203411261655208877984660883613276372330425504486979314112552797659261447120094404945269178139052234500701155376065957005104096886887556571762352937082399963226889087337070378957086565869577580789090610937483323012164289914705982415845915517003879534891735079343058582242991697952881204387443864845480364636421014807317360268407664451748242397161041084433986219528197939238419925071491406933645678821770857366164578280706118698224076749817806725840858272048420929156592353526806089011308698313165239933460245763755644158800338016115245865030129790455448394510277929065207533021072040569601588448970092489502967959756065921439140836035591122817580695840310493867686720394632154702938482041186118791920625317640050616222895229307310239978748713962375316564677469571174415225610328758862151757452936195239387789356279957556919765733170167545975040128062001568149267274610060097343401345973301594284818240029971973887722415484044465008345414862241287160402182835375157484809315363638346321468141212883763835220665850664492464565378471330455781207213283907677341373589790552626306969325028553495592822169027914455720325571800435584817697471563505799270905222398712858944918648753636804639516167088701091919604118269694884733809014505200857347422479682740711242697467707884960324359719617912229911910252655140066699062817089645425941887482312342831487568466667013059775174864017453792539539870732839729972327608463073685723169201401418992636184203995432603027996958598119134951131455831322128944856851542484497523886236650660432356902650037841465270263965164284835709039663256764269943506470978883863894983490104301168408901328879403539097434491735254634430749419706551194364953946751881816964859873396822376184163482851891253195035472596747554597415058797061271071314335759018345718570321605223653764612152740268129960208257127809851577148840680647484239136111624162604416098696807831527414239733204389884878186505818067873540457889571767109168331869486465433930092620772298294630730005047376312764741957942294384446876862646628307242607695246353453127448083645322363226006616852685324757294930945220067114511851860516397988647348859536280931682725892763711058530238025896267447284516360940566980875098994826703353366422566746625112786492005011983300685652346656525889553444216087067671621190465916689679008055429230751820138899676909769486417336024319855245219376335016815725577788186846972366997469862226637010180805462362996833813374807353912852944081959262268337822162133774479874039907339573798417900262079023600739004808053175304630643778737083824372467527117306897816963267784340236901274483020386690926894917585314791306003648228255878450582739412470784797925541324166723017986106920820876666622859250519777597327952040261800533287627347132549595393127191887465543253356252792151730412092047961459327149200437886885537341545612493933720180909643218540847102980001118347252681397668908254000709663299799431228273855669559635174196503850596477339758886754620743304744223892039726638904428830159845148764408978985531318460130501666305132420962563825315580987249504531622823013673823751457979861782278881868489756553050017901122278041049695326543619204976863232327885053381221382258188278627272978691992349794278840265804878596197016632453485052968446081054929217561492468347631468115570400353335702286852013669040304339553433413536977309532998699979319177264499091509440002161603603907458561120130474973724050844464893116824781215974682446759411088964822962868163194213810253610022775507082646479095120731307897446060953771057624701529134182301953699903400791088053682339373257294119309030192464348821853947399295560668462285765276028952126257573284142460123597162899644947654723410870965584440687341556313700802507222129903228377064187298820274573925511843742908268022593822126626760185080642381532309924261250526322201157195977001376138846172010775041196319832410644362181185351230797162685224642549457958512677240706927300190923038325669127379621427334045214776298992301350773563052423938668563462425747051575205871102803161469238186098149702623946845904034170740300080209519994946773153874903248629449163725941988211140594396426619371135945888511076568824290016362992298408801215226066294744782945674705047787440252750752771799212616606045868053950062600788848440032673875036768439063035728145366362461780959214479197442090169178949419742810870355502097722181062232421411590159104280300235755010553581532874449821814831910906785952390954400389749878363824242489852922847997764774431955116260534364882614793672755955101987375250954276868221741832863753620389463340767896261657944554250088218379479141044089418094138511540024733057448598255118977589193642269554564911269819232315516702405968058247467714140844445235371497230188434950189995935292511795951622129233290816698327820252157542015027762304075033490143268421723024582982399879331467238348743761027182817336650678123269274890562252722468812733615932599398823132768247871235533366410083946713170815697426084099481382243368947011180671901436366910352452546768306763664429205984576723791865399037146661552818990749197542218896492706632169472388551746058293978136703443544898699684847295860936707878667723525522312024728128934872759688126736897621106401350970514685371581955293029421902204338120861314409341739584265776890735299654260032459720933081282930811471104000981367133947988567252503681238365834638983302168490809131207484857043692728371129300391239324739283713824005255998806475747984480346327400210673380409183417160989245820956481101367564962696545597898030530540436156459027318510620916889719170345030250467576489669941159585557980217230497472112652397644846004984014254519430609965686098654566031907835200025549865509627169682032577663886113442192137833470223557743068523457125258615215606711868227497083571662763311654230740822676157110465810086998722108636377751934655176379012004820244818485510659783213353305306146178731365381930286583706863138005624196717488380339857473613689862432831992088419210599222934021057242548334894668385099616862194134619214420915140941826584819663313656110274115835579693765992716727513823740115032573618848329398804439212234649962123045165173485521958569960184892160462244404894631750504898920140385475086062103873547932603039036309377447560370593886451159032593307990999262213923677798302612031619123720949765855168166194832020715318935447818157297834394309731233015851968874056196745045186774671182340223563182592281111059246568974655927618542835260421791359777545441625183031138808721749286854085449350272824824341793965735132919477467155099480671439142643411731670958425477013933345703691397396861900365976745178499735937261648162384052560960324924172923807123010458485506374711105301694838662883763744078689353350517040228598816767671383048250002799619197303124844760910421404291241050833546969632739934921726882595325204081790164871303830343121679798837861591232794897957947402142911675159902226726829361560917750932147011589207794121747858048039382707171434006840864444678995216842102710764170456940275935203334140864958617250890320903024910894372647062510712243554498267413572744196393205685041965736843924573140860217823422873820755498774321590414379716927968725701408910567761056769211507818755292907902562497502949494887119867054679098288783811101315116615021547915780420664804815292483089011703471597589464193776937259782354942137384705071889404666585970998190516600314480547100726046941151508393522367750152711991588903262463015187040248096077913839740576182538569301945748384806979050842561544295665274473812961353612523211136790739100878182072436410532697709785987921238737985482025111873619549474684653568287529943802646425837004837796427460554561929253692662461516406255115120930877803568802124287030897617202238093939213780765327313941534090135928416481810052002141560839606536917136431290514051592040530447513662444716165106816603091991652344898950607803694817860906331096291679414629337092631482706019772500417911724252050711937141337545065747187657637328938044073345893411095700462365290351978585165094678696159972654631490650212085173153087232952540137179048719986693772259698919565260187453877821175638918622327012851303974317538188146829976463938080400288629170536475887828897306420184475879539650405694011308155080133022708916172712394013661835746623017874975777740768330089102836836623875302245164101957510734994798116161255629303478552287348808598948493208856517948909690435431796434280283320841188257645156845806004054836037256638146649637438478839176124084035394490607804379044170157279130585112208543626956329602182869478402846275234802588372019082789214204100809143706161620049493196616701660595591403211592722132662683087762353796938728342761064073492764529720869178081170207904082345685800673705539294483975963853388198127234575355445787668140016383828999931901639828432932483460312348732361180444317650585420544436711793418158018616956549078863344683672356919876559528895975076244112396487438168356924855111206939651359198048715735411954074901808687124767968335087923157390506084093688631125451370011584032721383216302198682084032647395726513316783549113760154552877232860629774720606124658030330695781066721590348795834559482882226137383803006765643789760719741446538542540830860119661239697660338620009834598665600225051924961300284404661319307598526428352925292053170706625365153377290664007068673709006209745155360901072706429437056709581878178848561979138673385290908015814997336299293323890535431654594876597252459946759874349204636731799556502185323635989540312849691092527554259716004235692828321503915606166429588974419926443596621650706685172096677409729344020762654096178817315739283985787257532232088352046749594451504650058152500868836173233367537162600529235381118502365028600726011902081414804672482206987221856173839485793690767666080885859899921510135269880968916447014976643121601606754497604511003176118247301752860763223862434281019140859201399345439022153698131787436699131597296036815159480485836623735381366258778261056986604811633013940125629639435904491240261426513146118069309789506905296893684619132719012166809356523062983433979593569570701468995970002314419303874965073952716129536844129441059770089776699956043835117707657845182293960223146120553158502938193644092234043828734308021936816589636500876608546368303781146062446674212940242873414458037273773266180425088196945456269146210330391501674015680806100055581236363779511158041022900565807979690889657523063469741531276341710237591201000116527990361822938413902963903641662618138236439898627870677559339466399989783052169645617212768066409504498771597188689526477391021691533272475464913778803239326053734254548993293177340316690533456813165407499004558696097116416094347738658021577148651574719403182971817076683589286816767518432781303118453192403108949649344194050751390106127929298469037114928690486982764640564537000196055177015358566381320338476023450379187530165328395935687017298900205380419136031568296085041307366657319202128508658594658279836296447529406924033268814132025119066817459657071106282355222595887633882363391746442093670530487206058865698658960951058619851909643974719778736423123797475802806891419981718840644014611102958848237772578916504547880873319481155386829116573581179780779224240298122739577600201047300483040090004103075932043991904413584021102715131979526331647918113262246124122517826202841049306606224340766260145423475013501337708225239273332851329762923862867110872545099057694384787003817551879653380604119848814174489438866357222549147841074283379392003352613520578854660180704123246264787141158155632309377336004412265595647011360236519609586875666302013486114309620402967090536778685471211841410305668548890487218458696199147355266603749712223667969969880151961762655263299889446187586146218678114996726900902169087279051417866836258522960735146121767441802124844655184501430230875548828352748048735893240812943119538416658047706272076811386675080808976946646472140644364190866273585908504618996183495692930646222508622169904631888935154946174923449521271458666973716252845489235053436593761414835084055879285732920042213519318194331251803044471798370305838453530932403391828416391564443036409792653308307698640938732190562240844254186602809390322946134478265437262692880818871157536063822713003096326299313938419576849182913875940441502674234904925456177006922373073765683017464399579828931937289238203051079565281245010744208377753556540769940765498406730942578733480901026664257444598948349393177235614682487856792352277949406943674593202068324172501580512242946415717302283031935574366213751233364622260368946150924750636266154603380513328685871038670678780072188959510609011346373177489163763037211418992700058704954939231953291640504701501561848459597140668280384274836496859636193356699824096214922230656242205649482220994847184470572107512701795281797540767830911290856543401165939923719887723763235424856149099387271394632645546412359432669553418102753987091718907257666842862601051170781200529736862414982187614441596662196627196417255511378666405990754150267071394827215128326136843167411676342062898858888504123895556968521706373336356765232966132415540926281977013194747809496701448838238507306912906519443627013436580118362437852898784902844577928903893250644887990931702941188115155344652811854134460127593389137972026738552327346673430561170317360386018005672543075603562400211335692030893978660554349172295256737927871989568362569946903337316133353759727208022784632848074007259201717151913887976869381167100887603386655439595416112605983555716302850498301921890715292493228927956701249865896247341956050037332366083573628437028677171770586355075606740757913712982485118100365409618835719741491293401865682572336585633064489149544840224346312993304090439463678707010216741593439912431843345374914960146896166344003216198621329726211755472613477099948051624443197256634523186066902467811482047224577549143236372477367679445931260462457972978926522724151384436906080577488883284309366037258678252911043331092305662447846206990599708321021439299979538358847687941660616369705725607231670125929800486272897164679070778325275585164702564281697394112036519635439448498168185195490092837350752995607854381999298674584289644126063436387570108518683217015080575256653523730389782806566384934841704486718016869923209727456125054769618197287634619577208996834007773200237061303819666772913628770547465353617050806788269160407154253813616828337342248050928592463801157471348581983904888657014291969842096351504747458716747987711461389865478446309745683896542963959993094222677946941167783054987306689552752305440392370423947935726089417147259035324835645110002168238166505332262714434963157418176037845854764830269661126206362870209053522990144360403508311773051177918039836788658539814951881394294878491759251233823297651839023387910438697560287336765649859548865622023818803415477200500420683415538655631170787229269010634697441589933471312970636981998101852057831870855983426344200615675921760853808424371347830440897572078944966396353259805706159912276448655581345381890156109564880269657268521443131287040763881754996764771763793970818512842659678446268825006181760292671560858133451403064015675977771117794020827584831658206160039078900679241255146523579328609331064249411375251378672819149898656038302748641017548538776673708442557673318724445090115743038363628112612078816230504918990777556156832059166153111771302014686401511876173417083309825175635243229275208441602337200185263056806556359078006507625220215057458460142825742870852737343749978692835967509298581752923177886767419060855339216943481177361396168758906458904441027898628982081720381938778083728362703303788334633745709884365542007835964087481142827884153482084904200630184468161803924934147284276470159108987270885083646960756540474737443422305214683371949421442510924243155000213838972314343044108619366933043497969756157447492250167108703243601648088167305586886859545635063537272243783278444961557391961776576033221966363738821710246156443650792747174992380312245924883514614115197272783688728837531321702548717951611324264005336142187966338114316116412808220478079849263373710622905549437248332858397368378534898190719586706990551334160316184317712709072638374563914991069173394573534020585664453312522943279315326480675637807368098149470980944692216968817620104455139541525559255644028031485498930249251475445739505217863469225089570550461017636973767374380340128408692119772730172477411482943141390445420705880568300786398571586300499519641083488994056544166903167479701825851271259326772132531231560040788934600787800517253076019838270753931412554564653990842789329536927036190118184379951735693606267911018535517529263760904267078359882005185740139625701362899540699603076787934069140167265318522954292367749219853084656679938559112014779489672546884309734518768023349787938705415186358451906896975954434027192563321913359842241657070237402859743801222363067368680508924920279384321354016712135925351400552856103215829380852243114083510598511560918812205109418624962052180912568058372738408903164497258319882486771247876882982510487929652047559272270256166080380002343014593842338154008141692617706252477020459814665867408562211590705064555918193374239044500441333202751552278674535738076040086206408239376037153629674192895973091437453063396506626410853845125288000770133502495099748432383194831875058773872164769757190422215871413121946904872810135696495947254952809743230188617883603559863309812557784835246074864281028731580229756650586312536202702181165769453964480531553147256566233512664418345070227630489089400599189185567778376875112468133972172740893012870715969655382310320415666812544081228336324998465051833956132940747387987803718169258002300041583288152267980914719711618940646112163959166400476271619303516935997933364282959456673969659035832931722866246262407534289182224199074239695274558361550311515268771288290011551331761602955257095141441549990457927100845466087887299027317435119560310627797014194840813297814922003443462355533250736898528728064357552182357684797624165598899530745927424116552824979360732536263658816000599847170392448251302370548604922345523407774446581980584858170578438519420901086257941764696033123291163725234976482731815535176413834820901837021033467919287747200301259660156419248403345967524579479743606788663783570739399776418643850585312004852324547265237459402562094398858215646381585282077559257828754105032554421638722014820835833010255195939869603215841048104370785275587929328881831953609820862116095015595583056508898463684314975549797395826045892138420944351950681978521782861294751588636075384062692270948938413628836020678645625678575585536798248375152942665999543213031365073608982199428574199002472002327133376722946104362987384118456337418335835144598813273346426239281408864672296816839354965376555744184571995340158358736925327220227491758024953899134785252752614521676378675404873110819212532604070066311204830381270463081501619777825811442220430575303751379631155657753505849553278074448564958925861597112499054327541574100706716142583139850455638689648741971309198323225353125814895183552152010782540693391500601349838934809311922273577402537997986480996875685421793102207841640793455488237648410185908611716773829777854897259943938406474958880133959017484931113735775508201408258363635354080278094753163600233790068858250259620357126144767530520628465909955574986541845056267406324055606759187006774558916889975725068235976523260405819841781084595862534847461117667597200030868964431155745046750138595306744447271451471537807490517480711572189599163659692956518230244612374125610988559374581890206139456519634811187839475126547138822540394830969381561814385993865435433818725556433400262626227782915060723441089176920029558926478701512693850926058593968879849703716081118843221949851635212015180145587855936861680094288678619855414963977112671721259158597095522275997007180291231397879433460913311617209773467446743433156108720456496135166199803907116648173883945246198542653925229452438100756188191295283368036580403738062714110559268262545537032035745753232588750604463294727633809838073231667338380766864874384450677650142298777164466624633992047453618196905599278922521432703749100525545284438634418446506410369163678010768613795865903406588035831395975967088752990519204332599545906289800521657110328934022056989279201162922813312355408652979302900703389299352330725631661868748415225435113121316833969535629202451142588969277644806847788183318297589005642219397155815833112733361190616096279442930532339042210241363613696284660045277887493884584174190981079852716713185123200861297878186025683731572422879333749842467934694630853040623317266787860780670226023857079470662491252388532874301951011365957327953423697303046039410899689288799574128770309997032434162727893353029645404919041907947485889637700860799845844769958375392784215999514465301696891835183150005948784022762887239431758413327154976462733631836477281611796454494311017547277022642677463619731399104108825023129719842814654067734026767196414253869452992154695551653101719687639324073201808859238333625027916692168410193443881659460830125686678266010467897020915724182189280987587274740989355871295714652397861173812405692121349100269699277654337702311329680309531405294607786332711115817462263889436064912168256152568091088533046771361614231342913390962183920810911639609535020171365714659528119273895258996695223112391840916397001402504040475123537996940789979213876142272115910650011001975143153708269973949823764927058486601060375922117622607061381563231127492236522537155391983223046229738863043797505853349683809135514230990300345281721258361616932994421881429889750631316218182895345400178838189416606845115770805985356003844553902794015811862754905170212667860978907868146728161600339046047483863946795702058177515573569293657683554888503748978829204832064654736398004459438691616834312742207994105386447378249572750975398475355996837999245714874558691755757938175704671799599044431558310542153671595663360074792558003991867194555314205594993503171807295246158223587091979986472183821292217236843465598937162439683571516569662951862340187800814060474774478773948330933313970432134673917097037233451380861613583758323454403349134743728455516770658002586262235553805144580512215490192313926300795294634038255452325713903961395796277575760359183112865648385791366145981985303612255798268224845209779891189030782508138216022627123498079946608732571393586900205305831675280903546418123177729744872892684090794518828630729046736254793130878677409944514645029527680589719227568854282761787557273233592585306254559608688694306847671270695530504088934996560008992085111398951736427241249913505207584137209705814255290540485526753763211224749549211028148340356132101213202307566527481209584843316927182009417390363938818969096636639651705210198694501595527767490225088162509952677776492856081205470638177902914788743517139034763211321501623186459079940476040737517441768763870794733054497657383577316249005694917646208299539537924123187898960312204351395957595691816067738532506593423674274089932561743029610994992910087735491921653580456116286352245072137262460950815878421233988687306957621906532853005581871983453494704292218831356356603516470979798143642112285385218729290435844241879139231616188677900456674182278207855349500060034661012479695024790424774131218730090899702449749429837235468364376839728317991284244823400749562910126652210215473670929225514959367148234067171353207821089275006222612689036189446256887201951772345805611496990917487995821796255335649861025056245718096146868680102852483235975296650504978188033929137036947025027611992588212664882652344197745050518863253963831180916320003564931632523202717557547289696059065129269149195277053696555540634684519919493584817896589391806462390874443269815451269338624867247235202426736103657087987570015323650360216192517721448477928993713355335997926778278020779492345134868716450243636632058828817815799340342465644807945940611922217204846713205622401083440442089314167615906266511968340119799843325828411301768743203420012471408067564284708957001812839161936587385066104483110662522243682358995874679065932834227118801904976381341069891438367409802549942569321169953649065211955134777086504896000619256740612831829913894105916516698342469466496598167696082545004104201107435645737788010440063958268879549643601824378179135865901418629279743904887824269589314250019649759759573310400244153089350522368137542555004137010140386502429402922720086914077201254714726916854521977800554364420451170084454179134166102747408772799609309796913304950820711407221582967465049407753690883827917875912706007280766035122980491517787731582038016864633863560025478770359411020473852447374960411844186192103227332837980311591761242866965545899971219805723688486581085997471817972916238887578279310437440347458703384677555830630670610827775630370229997017956171760966279080053808514748981184745654679005303032044169173440153885101339274235973525753680244140508732228587417466299170198002850161299768025962189539089285477223000638693342839084982281502114881591961797761589127033196445111413869236526599314090435655528741185575654059336314602437183604423074035745767371030556521516197653723591010988500778776127673155376651325123102480457001737289816320912498224306317455775294924285311363744737154709739861004312393815768595515897096876338242644144410082480892685467159027206696098591041645205675142698193986991842997396113897009861845098199346882495494357107184362805043695491323529932671929821542594241465070743574089091473136871220982758948467943819747577680806865185914516409908487229828916716966576143771894355164039179584686492610244441557484797553629724586889473079602066172376740116799469236320162549913812165561171749771870203442635173691031242565635256810854960751464689969695413814605035300561884415925732885217889834922464240084822960069012502804447834253714274979659684323400278259400780932567775801264007506734963866605283458374675337968247679314128899470039278425570209263277826883092991677439109536987881148011065492803203207563775017743376450676961955940040132312013822070924093401448296242705812306716146856281651083808582859211498875728848556801872971324968144513207030096213443735015704441296441020677655353920821622620587711323013612192019323088777319745995336684798432165421713575900220509679874465520146144632053069046097155153580780324767196986364388867108371732120790748857233376737463917271227597562710523690184474951018069945310583752434412602779128408149742482523589742450477527540966284431864181785974867407107797014008731854925177414701518045776909207910960534329903176947941721691288687651399525714888337388852617219865610115146246121138292467748880727562433545073296155322117896248906113751322723095605855150128195461174551063580533573705059567282516559476533406829128150288134739400951888367036663754190658784992328098241874463458606733357087821401494533044026513083059584179253229132921156715135425084703112545464389561942824607434229439103301531299361569149209796402337007039423625539991113233186258420334031499830820679891246043548904549047773106838388728743685208909323735554074678440295305948763643694176367528006648592924877666494670321553423652549969596654268051783172298118334073292369023970662467456779121825367955490378666796260136560643420857818904746709426644004594250445593045337273618585507594808496068267796122242545987871348296397864732920435716001424748327005110019773902727777283042209361276977915249404940425484525437772144935781208381080454898236630935591036246445704189949391423339700674390286883459924557661599284755268015874921840668828791248327407027027298116102358498185375635174284716768753967514155477690020860278168359459133704278500505003182542512848621387044649951534946834564085729484202082699484210575762887592023200972170092707199453174021517422146273651828483772816781529056505464414070708239953519169648954303620871566332613769817083423015169478178876711450442204279679616823429340427524983027520418447141738137673347506793398926515111735531453445932507581757753603873281142860236330339923535383462752464680523244143309965626171915146623294878693482870107023143246953126382135981199519782699067777631499620634179198423527743378820729579763765429367741137715565247178498418020408308317738063337649960086075857870886237415662168936557355623530940741986329160459223327495480719111427126432822934768526545120024812883918051566571340112694505037340752047541108411979465354516208043861600674840503653730424816875223336873383551963393716914620634232860438430518559931574287463484123487556052789883095844472742606029327040347504771800415220236742941254504350177494866016367664887509219597167674631972734896246907940664945560648254634875769408755879201035294860738999919175193349998077615421875508626723084760040038503171741918482201505509036209281221982867882460000116388071984233251551139323591706492762765288352332175255468603383983507037519738737408914419413467924532303610267107372166262955903649888089434657235156407562582142245535595433929580058677237633038223911313329919426425097332950044822807292888456667556490660952216224637922876479465435673257812480003007463666952041913440275119911060635863591838212974846767953249328388316959077386435011971862303303309974041773855472318528245869086201510314489418946027611341459862074030719612668504775026166865945875303455223791960938313939726200175605256651331069105889252343914288525710940885021503744398674062051412592778994613421869293543314460057772407191662820568943744064814625669687886612398994068840874600141508984520943775244505529829419242851065142864702051437145005731821618340447380422274579819897504351691525752533006314729987873593125156983616711893713603618651099454262967264341188726540516202072514730880376959059468523177884063109707950768732352943747806005727784568449755998726559942222267831900652819927025932115806261179731079015892806933037478609059561182939181281719962812314411221289118686498207954380641315459944203347572976752515516541914672878306419435683746531211278785229860185850868833639308806780158611449024830042018458424554080632253006056033673874846313463903016964139198428789322026205672479671838491160866322505651158296630814527027449224769801764815134692569609319357146777848882804473604546107434995229473084914058411932041792875443916560558495288178375914486399321329462932305831564448186829572506288636829049071554629921134594651850530600986782396609606391202481310382128595950459544899066270998183483549218241852879195580410016362591401426877008012784474874644827275520688042668955824296073154815064384639634053921078821892073109911459954352309515022777303739082970632082830376139875764241148339606377053365922656579754015229409001338421038696818420941202029315216732735045217006247343078036998662843064348288720951095254118450590774050896058091041775803957846358131867229459404190438439095240666084058388311731346998202913981969205192164655760417110447929880963182947675485178957329679245683344519631962377582214144982899559536025619511976228246019595967992434302958562419050506864545018387217568432993390535688604805227885815420924987169777900961813958045216061138567685081502317994625338625656193132254470305827939541817699343267068115472423613396779801344840801815555197121022306430635829449319233809011167061385606704654167383681555600143366519376071681221943911323419067449739044065650261735403710524182398184987769649064816514637131976675465669951985884977982399918114959023702017526400616168494308364821979887703554018918534008002780666507942105629870531641033742754575138588642132381935783298924828254616825202457860917744312510160102905608091176188345807337721756686209518718007184459939649599197118187379657490034991021415640963985289707409864087670391841941650030681541994550447155370123071701387706844706418108349541941475026810028722622810904584567437971920067755276016508547631896178621669436306311297624839508427174986557075947632530157709815551700172244395960155945303070862928840076698781333143068950063681113269226116771658608460216396072487287401686533588434385103453938701571433244746164454866768040854996565122054458232323882294083409009451945754341087076863686617210407843000142814378281490203423726006869317700975158369354433338897988461916866017099907237674589164183820955609207975315830061984556580329196264485536045049398408478572752397231482938795874714396355025700365920794909081280697846855870777279848691827367810142215901273876554377877441084619853540427055106658250839182197766072491607164075943355478835252153244147048129411631896173855237986564600851924117397401264890326080834284821045430812168224088164320619560808888798079148983729573084244281184355251604509468667330753581962256125502988843202896041741565453296168280085973919289927248605790772825933563705403781056600281377685990653192483535313831137397495202745512291520709232103805032781049373813413956732868902763951035113071125206484720527260849060208951871204343879902930517002909670692054443582066047848261867001414049743617769478276783611890420764108788211778639118741893783045282052135778228568551679151806969408710945016773278773576006547326523343630853800144642624364083029856691003301692712743639663717461394536514156422688072539586505396493092250888978354539112812613697781816326509287602363614576103880903364873109060120096697591015806723297157064240486170867720434517197357793483556373493888412949284559669837540615545626535513655258985172032195561898650649590280269145710696627096191320007434650736496902710780245718207112251688403686985444855303832346793898437241099031290332266463345225299691954534871588944144250972622429831761531352547745898116859554648779624064767843966337989401848878202275903848956624261656571598183250191331606935163005823750708092899751195546028715070179875866871242810161031121032630208702702521445275611688850201374646672516973083852179267468041800588536846735835347972449051381399990688315728393137669363374536088296937145999617363411464880424029233901811609120270387971630836316901621167354639828131010785248890289141065387136229548222631547955205934652793731966672108069582734638012866049728637705010295357856254932205709640340466185824880149426740613283413448763171673024880144192782757121283340621671776091497106773645787801533199090047719311825090807393911446700358974216432390711165248257460842255469919574807985029647902532447481213532313980918729203939801350147415991125504428411186274284461281560570831077595984487414226006261303514362821548513625636516216977560471060196235644604714122771220978353887217665565914473726085141672018829699206746040639217638456547588698370992430912200190916049427916468251650905151957456184062198270046300660947734243540237646195499642554715232164389829651951340435267014711525963854069423649084220819280800527896591826083594957360685754596030603315075456476241216451813405102493765159381023321594089764815932291826651479849021321511473431924676343622977418085653896008015550837182815671083510860478066514494492193579697140931009307690163169866170310388847915959166146658429703101414486656933554890712488191898821433002334666515549051252730134251364099237553555089668284692584563322519948432916416547793713845390771883836475905847810298373665225250167138674108057439532077321707862151710175655577911503111166219120449428637767414698403724181649460095304912893974868862926135730620654944314300314220721250921602388409421148650017769989658848321389195993246161929097184589852185158244203016009673114246528259590440177079923287002080868388037678394832126079945700787901255235886674372715686963534524368826454832392044922171469842991765550821265608280909034033847440375045271109540107059073271588449726673735899100463794860432495016021972111233562972776698132150012420774804437347764793916999133778219137769612277936710782798325453482912406915359319039903985623301975964160293056894665276475926581703971064725970652731512950300629338168662398487395264820838389955058669153054857667884010802991293767157607498261360016932729167522999277631079423314453375720994282992060466182441324868826393206017785097471465252976171819262217413954736395150750876057159533162232202967612878578757119967802982265414907924100110748056014847176245607324524186763687229950864844690688684571258418149103974679187876339551926493361869214973499903156305291504622383479938045767523606774010685047274308655266222335581739999731974182711998619797155537749831893304932924004657298039210560128969080678596100935015294661633828300075834869946653078832448366415722190790754839070468852823695391823317352981580723316011348002486654445666328274895794077037776751873475977103783680196429783779363957770645776722230861146138788968465698311038852811286693596214435539636742599510487879056627110107931453140843783308112106920573078078534843435662646335629246214086903597614906035611229354364708604449579274891256164925556601175172033765250347149798058180941184896691192530603436472067973668104486637013817321333681142785932026272300837679883065312766132711941061681781278810799616365551004676909103728190905565334365556775600143111148734787746820965554528961739357758374553303844084703562010373184340194923869335995784988737695227014984694513672930780682570143353215340548713370467206203653531910911786416240799291449984833504985678748497777445504238602354521237368735232475095481591661042419752704673960688410715414608215020851358848654560405506330337975059096034597847618113526140346899212693596564140128925401556572053905519297893530012385988284432996332360008939214045990874846306441402759677142620142257163531955700635219304830212923560351510689651751330067264942704381327779335383613386717312207997740110810916436873477947499710214803356220949598288742921047485972940421771638208788339781253815546506773061176447159947039034332353683709004205112350135180284437031168641215221841628172909001852677105844612167034729159226654904489908232796394816922136966657324870760132856408915109466348848975609401579141785517603894900539484841864945041775302413485767664718860831331449652721553020554337752380889009862826249564039035241467111079889668388396047932030506340036080077276058011499820771791529415001063344067223347878197212496210409206250559160656487953396005127318742654770120921469053208746632162100684604194535459789187255592593499952457763588735097983705361146266329461275771059778139370182745475576618368521111968153724138627851188890323639031210930242844836977274199432389714000948521297288356947713357812164226304698650279180036945039704502612121146587712760419227881717844761769246094967077902548387910195496659570426625881986780102661678380913504967975297933456225747252633587717099948992302152597777787943028579864700998303258605772392703110397247389370922332946371580699126750424780906163414731611478667087049576012304231565441681612170823372470260093441186115473344013963321430017935837425032872165943423510129681537038469586096738428091026820578801006891087960918098297176558426660438196696777309833399000126668033379278156791628060003506732390837490935942669175686332659541961877238929446076617890353899476313002658643423429806838826066960006204454126632171077646954704949705266649599006634680728636550582511853027948206043580002573775314775661285277995789992177211114454157053477721865137130003715619633039652183827586002359557115804642680004641382448608903220807947249548375122618544399782975964725005883681128190945346574884423165745834603197833425997861389295036230999640538105170422678694728952602253900237149301939070020117055339978149647028204443371313779614844707407042929143408634673326900367151232895419543750454115404972632427889528307431189924895165517836627889997819904443923122271179846081941248520819348086633902079032549568499255991577890377330426443197366599855231528392335817180737144878009911389271659778549016296600518944491051943787530043287492130367183272845417565484943237176339495784707506517504679233856592078360570007432449891431680499347914136905859938804745999365137140436944389770675510146333899873129153155784354124212769179531574643415746713454414235287539475991197784112178604722353569716449655250067791597878441389625283643361163048400701985466576930423329474123111657810580467898312306070467412857625866052206351432433631230219957109675759559670453051183250642839109170897109695675552735159788340940080301868052630664919811513785857111233569877313030411825552902096710754562921910023978138655895175733706603442867629193920233428692388466266546946320415790785032495125467761989034989233844190749214999861927333021593411970073330576625574823478597453716571065351788293193761388829848739126110490964938267153934941449554221375339485857928291871384639272287157353632212656651183112706483099436707662257748390189910227515298433271758745316124071960652524560176324406642797152592236374832693310517914663752131591266868778339560304064648178327574602085469045262755946081133105758980308413986608958626658298160260229932827199667128541179107224268982752867666483045962879091440089129682493124855424831328452377294034280207910341297403431961146369792735597878254174055815062578352583989333882815481767387824635611998073382527373150481288717772656350806616058408448436696672012201405713303535227255338468035330796668803974122270693124201273628973022343198159466113912820882062914739970873065920226708697618581915320253289036577873491366013005401651970588153115825456748877945733216493875946234951208975313509573721956235340045211777204010798722902613760354296865538072013912698868566372019532825491074776151667041494155730343299857259367827656453617810693440176561424435622061144574035265631397282064937150255926914448069769754829986910730485463257675691186101149314249921928134571389350757920829183037985931642195033464723257877402622425394583388960995331794078608545855153247216730623048061954932210674404204212069056767901457997257970817412041251803273176987531969518608019587847831306032745353182704506912341337240924232201676972007385052642922739285148002858578824395131014502671118540526271631841137236735780490197807126317771021214870096641045894585781402317767412417673139786482344339229125429969671626693767630000996625725766834255899179234288415106103651887300810229365181390943812985283993248549966339883401893291693940686566365138909493636810259923204228091248353918665309594751253537005341704422012432880629509324654141850108634041503171274344701891254856913819852546049334716214765589217688722250447482658268639513880175134562382752913267928790296753990390212189659898213211151163350088429120425069084041412825043388574553521267919949057930160730130057007157260965906029617587915770843286977292271858918769929530494899086230821171740430629036787929904210017861549091548934566252209192979829436274672553440924647788510518770138939670116421040552846441162013666600104494975128534005263946728688694790332916619704315973514679275149314771989479841252489604722472358626288474031472785533914074462884157206371320248127198740397224935399427218134665374511765961235209163070926247362803791703283632994464308551655870186332534817759753254019778586603381833663068691164642640443758625442846030971318562767452242143737619673319425469634569536199053285631013801197027380762793926180120300487753779110095180556905294763570287407102146246260366246889748579691482097519084978048891560236240650874019936689070702754526967542669185446751177825756869560507338286544559628633372020607921536522409308410972747157688658109849448140754656806703818864885241928009508054492414187648110423546662694562148112827834396885916124608685465063377973525484610908191955873894378650184536453368774559094604730131050450555825227307185871213776586640373708115121674828463866156236391667805804952116452796442250032726151887541281192159060149261275970033998946046307355350572790152823958890215197886314789943587674135507988224903149966456402559072730069099375827349174781007367795042758958089311546111891429998544717920772676570967543534347454044642838279914326430785693348435049602581111815111065527226249622527659701949478504241156588905408637357108645206258172248882477203249587190425808505195801722705063526971126989590625734249624219338024056306586395398007398550601852783187285012394443723088747971418634210635830255549941082178976690357654541832538482911623023920066221627541697276209380258045143597373040558384991897722499704009629061732000112933202731105547883270398101316383896797150225300515295760475064029878847707559091097516187446455547747446800013931513009632939840151457053286268137651701196361744164263045301434360161209809526541570135162846151544780695930009390109229521240692191869828536079253401329988394419623113240566156275785276277993893049164655348668751170195199687253522801769584280400734432826659313494900442002517050312739749194505718246224483572166892157159057393040407728500302873954962616713143864943597958538435152402042137436718124716694122061026317425402089146869601820983519051270044926124231673440473918246990971480935113649674546568154517106521096992589118845469985530547914687703769632498647066339923113434337400569755372423705781140827799889371119420063642612718156477312983739363581842398803104330397605492398361921075735104267767029127546634341609592795261282211803133010337238771243381417589160393949708864410263222670097326923354981671583430617831697911243211816587415156878879895637053678861458056525707613180331600810224774912874356889588569971196257211203989349028221569934729935566401401234236363956989359927142383669612057530582512434023011933654036523723303746721715342276223212558496372368977736396935398231313450485934748361541168168027845560870889211531037751921814929830656673085349916549186224885505996596045243670406005957395933632546784438466076158828231381245192568606469755116639522704186332986808359667559175298947008954121837504864005281694897931105660567594308255236266294801753034069784096901933927500988069869084662227895093404961796221624644551060593269406419745166203175170284575053947077410567453144260338982480180832757151766337678047114695963842206561478116614190905036726395058802736636424614198378974580193328116941834636791729954692117167622149156436035339568594024397823553148153537218086840650399221951373626479230629151491180179412320722804599794790113679253279781684395381815055180543815153282616101971657084650259062127009150471213402752624075678057045732625335588250296599748452976533632449221988077622055835566997699630278634775950512954844409163013751802126052985998922206170821475280347734727226651121765658511206652125051791036955930629693665608440614531921352322893483677346026546584248588278616075796693790946497546550094131434384549069200860515626096487830364076359613755383796871860885427143359654281671327398741707021269050073425052943227198615670972179143169517269864881173557387781496153305435239151007753769719289525103175040659611419379866519259830193814062761824432049496992261609527380442071815689961198537031060149628498625722706097867744058611619764661924821857573955275537448790454740693569780143946566391118539692296295424570470964084126872862268529717642875218222888169803617222155759115458433555675575391913781319596356350609165290219206330566434450043186004233580899357927091923245052044874752962182165141338878607723101914126907442028667529757925813409285964854467000359816307763593325118268983544530780103552548840831317351113370815223333509209748025988785691016547148499158699818616050394982725299831010619028630131030482140687901982733804001585789096520057857849928089394732653995132259313652916978207326337347137523492265493878944535450878097591936454541894949241201782621471351071705940585693463590119759113190304831863908437500979926682993152854842071304514731549007541767877290131387665350901804246089514752109134988435596620098707468547584602599991725381335197602775329073884593266019671805680995043248492705048574369329485967444795769274444877672138660330199250971695581399466482696061687266408043413181446083187706820667700107036093283807894534976199242380319071399846307596400765074544031819078486337806929413263546179628853216956081228734755919028695057661608446239711961898897524918178358110369060054692281354783936936290968636574651499161043846875423902411539442657796413903426805471024595686119940959768956089431392112844800969515679377091976271660391459098642378106367424078347992599278192216100153121878726905596716089845499914127374104732526094311077675821889094097604068561114195338463820757716510342796914367067520917905053996415933271369446975588142532898442134269777314615571467697501566361740395480902210249270215182190455529941561133116741644780938228387872021131918475988320694728383684529448234807757424920070692680812978466158760417824985181374350575891250870174971300776354330091334857597098384606245059870726122254623089178471027399497847661893967101665491790099168428433177336239431418693266349717209219932073394574207490646044112296189400950541306516097307523075578874701590714448676813804949216907893399565521084295402797744828477100951014893322319843975217354191225871937838462808286474806597355068067243469281792685539722584167722036602878077938677480150107453129492130315763458224759665901410485067705262212015827174663371883568804922030507085546303928540825746889563339631596798707854565827701313799167525122024602968203408969987505164682077054685354610579213847651251498322952583034991214084749321935881376829198303818534967890749907516369882579996257110461518121293449683328439420056562836494923901351956131448371603505088177784090179824546052782340378299805935100429444215680148570710425601681206623310413279082748597486977839754903215129961233888849139224650741937760218011233698554332178288687424213874692570174019485994949429293115219359354771364003751473683758818333271235368603300155899042753616486737431094422041909407314261300296970365619840857738450297996448056121051540098903374357571356699101424548595141010617573783452076120192695907633278517668278435430971463336595777932198231485782746992466509252305839439110636125150467740850360824994368993882050132258049635573342098786649864209936199446687825978414058227812069165484821599425045202746813219835377290155430204072737254729910427015564043046228312903728013695848232296512315560760695774982885063514351466026117912433302473558684393727088618720985501970770477523360166162163136547732806656531407372044423414144797070184706432551021734873556623712625495682848942802676434257336340325748365425436238454164573109200916479782745603384671750528728555601028521533073491634020342536219824472287064407809155135957754177215242268915744512719688905111898200349294486305613556910370983625807250007206981194676425957573322817407308236246360306373588236321528480695335133397353821338729558920063977763382358788864778315694165935427863145870929847200424080345121713564598350573603838587494424844264784072923275420879309800807185061224516435382750819086724763281506221846172826659934509292655145161465040631014289351175663098466108855529905338475265981815933594479424136476159470821823152929966793560611523764914532581961742394771073565425988048635373073054830581854003691464126913892501768963951788644215414095932161017489509566361595320306241636515030487033681101528201015337682115169718286490888859682154661180772750825058386195570985340935576877948336061148610507269715972318193093527166838134777302288124985404404111375702473958356428061229099910342928558361063860071034513223549526810446431293827272901373867520389946393478246583269146867787208652155690019677611352923764360564464137345013044448774126725906659008192024415414707416028758438541298619832251712460938728717591885030365707057724574417915324773642024615594433477752180037296203514761223096474627840214824933733127801013829693998149499349973037070565706876139148774620388548056953250825280856986480913121492113864483242654119296668699685981988050761458932100560018856589242760304546130643949600724775320573444425911825542739655384517858490335333161610710662556182470604183802450649949825595243011396608004117862958107463778134975506608149002294888295212518059177933900293709880252090282927830710851565763809232833027748103521369245863838261129683621372815153192802365310865303018751763382677344074297198793348855327312002302912770224190032642682782328708258510033257410618977141111045950799589437282092927643694339722635779539818096407636694327902118876940802107345858167040769665934501073789490883027414130314614268167954803288976351123633315954562536164403335983776912545379473239340703677988266038916970469808621068078210320618720519676716106318319155889906418666520845346684534369774870510655191442584346475766112930428567543135181021854410874326979450550417845764109245998594498816562807461149960206618821468713556836866408482688151843239890003401783350889939784516658722874120489063363230592168712465510998273987695387055621454883468651023526999893609465433905363517142882000424756927166605280751208103119803005336791162644851215584239936689154646297814108429169913195247126084462842203512750045170610537044271016362781811752263239573116572933962563567885732674322261275977560738795094441871304797474305976336176382767407829879239391214827334046877867359125535703236178564113181901707987192530400202036347676402532175474859853407892348471687117018278794146918926171256344775832914174184207156276856766107866731489848136267907936832261632209703106887612157324357574771795530947920458410955456416009950772862984327817263368986856597635832521685724051237007856367515851919373418189001988883326070334613463470170185282901318939078857627180758844760914349526736993763118185378055058122249259910560325385116571590338614080125321417186427442256711385031598070763413674505634297680512386470879440347082503230250939404101514004406713293851458489941280499070999152591889405238285790294136131502486801647502469984690245087592002332292729182811142943172436363180891381958721287492568089877850389060407751003881590114721045060955816952570325768655931012062418312704131388742230561608196684952535965658323679316015673711760167458453024740484941661871504470528266538285913615511773853143569639137275100704991112999395046693275059992084480344133017779845391429280137590360019557667630447402197977888783552291882073183002391917379638042756153287224254809937411030938907688152982334624846813143273186635976739202727577168227682466721807394657387723296538626539140459400865914904852819318064791997962305294256043796784314053212570984948513690532462096077215993762604181517704345135936668147928408690976360635938784474760566786771014011523086399352005477311825489527278249415198084918897390078041208874758584070104169097077736220605291848349503237486612152380012826825589193498954104196749631785105200643926451254807200391014549474247277334759635942346543571393083154826748470959929475649845876301845055238721622459446727369868664440857597137136072079905748268894715782125176494982450715305991871600372164697720800667643017747824996687936010247096128944590750225483961946632642313257714096211224452513495030874958294829284631203708192615359877814216742302845305771022391907402758016007082796932842204478191633883790840360620656021037210383643161871662243374308061240334812270742183687199825524142328490953637512004667450798469295120677317862674073877581915321082842822399674520822709680524408602036139147659945879400995371462823167563437668110136925775651267187547063055539497014617983794196332611619998258319483780822465831062689208682427803086062166811042029557331406187520763789799739704535431092831608968660699701595224757788712691293072536020285989469484814999637398996747103448870392476212293045437956598790840771630515568827380910016559907744394053178364192395192609344873361122793462891281222740561071787750070363004567217258633179338768942755197012951966353902862589107814537470676831017392270611690876923625433624487610309185861976039425823640142130656177358333050292190535282841175540233242997211146390813230839401744150056336994717828320549667752761443762088087820527813949540873590334446344574176245812386479759894435489655807824527333218027553091739156705085123587540744052818471618483981808588301976318679002871116994036984413377708737158128037855745667411601344385704345128581806820498905214316971179333099485121361979092185771730600928508955643756115999030410396704574564087328451475153420519080299977678124773415037402369288926318406311748925619133004499136111378955077046630668665259991677422590481177390194943088692466377900908915653440726867922491175987340335977783169953381365549747092772540142754001433033156302727186452068691400265279186175465611080812459740635864905510613498298658426428421359213918721980680556218197063532186322068734160513889472782808638379404734044181301739585276174451768480957040496245908671614807011739211482984536480968863984452065438395570478208793156734660893010523097201479948978503273825917873599107688495164632977008425392461237145847315288833833450938973885622720592493315846755252386412378768970762076584776417859709588966998750685563695786208105182381363541200893943935166293156349804689563387089210570957684018824262681842056224077083323516117950949089099838119647940585804119249326721471421164309934116233966241404964547289055574414875338419544919712063045910763918563437807360439219749369798830996892029393303175513618263835128904895972564691296417715713268234754106058913907891646120984356667767149731700680474134270563266998916112489790409225841339669795370044667384661793800136368898847345157226985773491907554087788623775327547921931581880416425185854013183565194676655667354063655101855249998641623382449493777993810512300126284578259199737727825580154152174893869752434126572570173614407629716094567882731200733569789316410597020822674313654910887438766192780942040125862555224592030771659890787109204104852272710728783253578066249020666801546151369157004695090070084398463568943444461210659124912056229285926707923493945344909579552054116871309185722002047965605513468728806623692766519100567075546214611528489646582560102650468324281578816202749066479088218431975475566900788047170441017283772573090648914542726768988634764109975412317498947834546126986709861955640344167180525841905817730398495462127895871537874481600127299460250710559372279708291211524680756128505730178511593645295357967839553860698194546723472674600402042289357686418334652332496570850864496008009954406448994335211664636519283020157295312596383618804737665934655300103821161307267223362630952133352256295549013541692487408737486000927101827316357026612187885474115408283169143271812504547082977549193628817583691126921195005270250162994554283024744691221066715757164679088828575759094384599201385600176075245203089727878591036322348723762355177264563790664673818702830988097983794539861072104137047550832992433303297793235624511749060384830177586321850909634326942330526771305406466493595292020136790470516921018038627163267615992365129060884605301008361960274560425155028962499643008663712481598600334757743074674651294335302022851179385479840194790148804759063550282670201657224340676660017566276150351511931086743512732666296810218304295013329408388909337182657993699662804451855700045011715097708709180176865463860182987974277196853275224585705513009941280301074986144639774109199239222102693299843490456025958464822247072871409763186676150417667675063678630106197749148701298152215715079053139705999401520435476668524947086392309435149931584401146411915517528360936393352027451272201324855391241880226205317857724675595230687680084770305877465721964528151163858903338672210913893210141763996759578748575766025866282207445025763726251128375803127013033422859333132946644566945449707821881720526462048472674220737297451242281186270231268538091630278775130531299428277065014616484987284524740421918253229481168806510100478838087351201357373571368268228671164941011361835781152591651230292947174268467607630748531818644302685145868807863832445083015182989480871613604668717330231920724699181396473468355243912857390356315303827463968161065898093860209032971932421083975762992784725116038138613214468768536113788548206660625729117457973560883491287272384238772276328268751065509794589855159410719139705465667750850644471751851637749032513349165071361717656636563595828497328365327937886305770055645577187245618402934844265245566914000572654811127802894418337363389664662059402183195211977601304876492383303868552995025559284176909905534374598452403782428893244566404928872964680486988221529956802942385811778234256861864264913499323879672369163253693364457743311912947404882057561404077004323749740136649074745548657977193292820980979916227096182429755608159520156283909457142173643644233874691397617132216143155847975452950048747401902916924941002738728880700274702286272981422490966186910316000468330302652374504540251902548414284736997173124232017064416563837624846972064452443701532682655351824149849263832829127089977467861678291771705382715828819090546409801516669732242583417777424147833757329119301187768491033130436289649016366033672378855660659853995862654281822970716453135099550090479204047920039677758139638513545671135735701808985278408021059658253599274635609626036688534261802609136267344936151642485038309913800796792254362759530678642730961974133245281003410959960120498224917546936774690794401505227038039496928944755520263155245592610555446103908699151832219762129734049392050215852379312481094321284079979065948469432389838306757719415156444899448167149615921227974786635825101721285761461170654570711068698094485453145700324530846943494129386632573996624908018764434214522867363476993726651182031329877309217986750277710039296509228474544691037790765133014469484584844592306747533415948826589099719436689638681973157917895869972821955870006479260198536296719788123738254753911539463921609097037820355533173687557197013491793985493885875103786472394523918038047920600220990153765856194649953827751906484978045177064418905024636969334525089901083472391623720817936888511048456325757611451247023892763579906983603279667249241663305999492773535235638332674920163984695888363918898650734088142270170327218851371686376398148611784353781696240470593921263540548198690492713379841247024761137772205439779520258438070653430801139732074667982961083384114146737554477313848150070347206538023494115163023396807430080464963950781825645948855692600726587793616124677770464415996060903354639129343066567867149525850592403262713849022455020660142596481211808153096760855212119517998773554468931258717497601702482359019523441608198175311418525331590725060447421359555878407322862527480684495929390997913259653381323974835093277619679674632354471893404328427398261808348717672816794486721446363742357545911887215989500217462191500045898658842249810608136724278143400243882096658263561348047969060227956593565664243943280839251564062751779056486593708856343163131656403620321572406604802187982614554638673388663383980309472943131150053453813085946905573446072750584034865100743702173326422265941618977414400752521435356023501033323592699622486297688052808277330606062856214731252296310493981330917002215958250180813620623154649159318080151656458226424329131284791203891372653880372152140293780981354866264944336831824294214207561043291045991582910039978091637439136981740951021247326028053603745369489077440064210066116271782404216076567034341632456712318023381036557284648103681691709824550353401697528680224125912207935811921477527389885202891433817119340236713989119319692143177670764146620479065056511774857670422365942831656726582309794064112108097722713157028065201374445018746870218839306333989723861585261356278812751070454381974546937524670056218650616627391239400531043320107729587111567870312305710240623324662830608055665173820089770636558465348703044002211094175709590522643948155696652666242205524762418184819151298884735149753978723550495205868765942508905311720644772118684647883885778683291629305278588745069929848372836161929075209176785067200814376507014212930146622216702646734128153345503703169895889246479388364162544818356800573848407153307506719842030073415731972098243914693001294670575228432589791561621654555873673704667152389023747773788095028019000293293982136645457177652592584609478677995671446014566971043077887588808001037822565965227540728072277110149775468473418844596154216538650072550960028918926314604618967857034069508145600073691165134084370490171760823719199780181971996625485553392034768088778942376798326508747921673431888090395735000578769286619388302044182344684412809679787551168564414188614678917852887245655351115062232194779304036089336061403718334248606890212359504674913101718792750292651585727569471595809540408889313345460208094617698029152852758445566736326173549513617428276874336831101260381838191777134738784251444904310150819039009577102512597929251594156592978722061011261927993332398138113588315766972776664266787728023555817998651440025306784735005800848335914830837971302239830104073416666218388357198195746243777148569776742797307639951114639038961955424207352010234310680024444398867020264657817289970516292059229719163405730436913280785526272941944739575957028841189392947399522426417198279260437200560288661428325178597933300657515592661636899960745455034898726003318539784361499116801397992240518949193801545527235330780240032187041757518463594148506198531546875295122336463529748829693144563094285659367015709088301673258369814577340674956321397716015567617280486250781692692141523318154002360351577275731464578560416524227007735378427843994150520910658846316084128182608282731811982893828538793947066500086510961729788258847786464338055580225561538957516718398583004943690078635979722135321683301185848664201923770303182641622610502069620946637864340295821097673606515052796820787303047702505429164877889317379350688717421606091915240084731096528464171064382019406915550769406850986917039193006892327923679233186143934771352430637342380607220321031246569637289317607167588966286826121150125098737844159864827324995408727984949057187101888582289306136640823943210847492927897588599014422507701881747494017670160223376535514138356485091684797640533904458116897060515422927007358280287832972109851569520277546811176017052320009189755919745578991755577168038740678404501043979131518745739750515129055093740740013480136089912103969526020203149419878259287364777176654193970334665722423959809459144642077369400834209215358991867969231725830336898675981496007011558907467942932595631207097544121934121516407092752112711304510810970141245849092830598651470575266898073616884903770094375369560073138431728780843731708916828519245889746615681949928846452232916382432839252793148299648394449790278834140870222542585089712494986106339059977434648871468508506328980294217431854437481758170290065955985183305373517030180803323597876064861040150354198068733480415069925603337882046926916359180994011082750952211596102112327261879499104759860928426680328549363488639802103475845913338574940405893883684801354897566177573702631092180479876795677941159636652330198211612602927505658889018713743577253283111861860633030799898902571667074109734081916376606897988113203485904371753290978676487148881221991698299941420921198234909813757698072681645505797120979947702883490886094185496160756995424867070659928590617947361323079320584159015498079800767924339632428542461396782015454018570341763975570819768545440592246076688651963138646248305225633292197245653581339558672102070988705357669132668379851401972851177021137676826971315636260597738683925634709306290531879633779932433653588512378417469347174415992523904333655288818470683224991520892941901854430580897313030597434260115596059571931647752126538700268059844016662503291291119288980997255028795173123689928863797908103697255409016189033031248685544193260402391955062534311288354762828014134258396968628216633026564310681000384510674957626016491402917145732782938020460944834900951159870032097886967124169158861753720096984573475118041782565835405135292095440035218005433496818820260398464963172849851749493165593745825064390001786659594660793885198419424303370176861434489356943758667368935806475343869001972344725497006892719055150355837967751822457596311255437243188262262951881664776275223380798174308208049359343835738538405982620306131277693264128811017711612426929333277443567085489622413585700973435625777622816862933202857265897487621104553697237845275265823521042223542008511058216733408527920298833484526525117940447026920840268160406762768719713976340121032044342040257921831649625589933918753255531733120637439413926721025813031298712377786305246456779649378019388731384748151082563480537862575687933387865034333255259253354007548503770385305888054236066189876049005379585778801898511695371104903130965823861415493924528528212532771500472822614608972486034506453116959481303102893901943116720622689421532760132209319125916766162327837597846097886325708676160906277841931268392470409222949158195634902449584956665000243019947396290998408941935349933867923512620553423664069105708192367943036650143128033393942548573918764881412393455530361833234247935001284038286232872959140431378335274296764177327326140815312668853981572873274548660885997467504691140384139713773053258056455835882170724307585360345692722514461337445714175962172527435592691903631016919969464397710455958826731902476203078872381512530608459265930068276662446694670629811445784614024708192217716017728878091179441725256407208691328026837077668118002274555535363438003642732635208576281353204939274708774342956031135250268844460639484028198171645602354494748636449567308602961611476304833558105229526067907160603094774680476494991154512876788205360775673344790279410969597162631398460020297678264985089623163757279239275672675556181139841375425811451455596525565942025629787720938492675419314126723262445130096842031439318554628785397413621199440120582063632007579614069122115738605351344167338691837416687813680107438082627301974085950045745495971458321882216728620973563420450735518779843069136571422467883433802236479875142191275318262701644989311809744728986898486342867207817282903878545194414961760430753033464878880181913332187036465231895600450258546334055098238575830702947008704711616904919848299278457848539040816442065055695090382489294322145102700525414811526075667021259518634546703859136579749050824654171368762001558729435287703034266714566818573958384935890252669217085056446114826862079330736561536882553871688671000907162541259700235197500946241826001493157337607061359794811854999372535824052344459624019881102282589264477406870171536266184076722083880612336123541845819666323483214497972435553708598848084826138552129191323695905772998814783241626824548263021633803429041260254131753428426174916741053225020335170537967511503452848173985508149647245040092481232670798688085701396076084908189157379495274194308458727724460151244835386498312934614808213306613901537609452016052853839585815732539568062575622600741204924171672381534342457534275761312245200158720204461232135734155028338974083462243619990306103165487760150260058870704513362399682598046379027697883280551816656563178959409972901905251004794565446317608152819341051020581586856405511056062729916522780826778318523751298253063422647854558559627804711882152842699063498633642869329558253993914572270263659823984767110594126546448600633936467549542889880756246582052819922143056893104545349422510435434325704883588649904007627541914790628361252808223207919272594084433630828240530502503909787230385397043421499744497344227235040044057950454387346550296844965899152844708929719322945039737841126440058878915876585432382000810035510951109011006153919822503536204199342689248977050101332127699462249570422707536650607877451976903373813286756910828095361340085349470841751165755904644783666414033313003201308604558462827414373006895813501204736933643346834158459666566892998480040066525397120389791846578073013247272380490848205899727906207909508507095145241742972807742384241233882915410359027930628760272393458890821815375609871034137892518352001822934989524804517211174692300889733381558677397069083468194715850182548148377203215051893052937239361480514264072291201697461741495637678245529506990715242770065578091286460342736778347358702924801689297238014826676180826070590842966431896635915621925098150895600262973176392348429852068651902901294555092756270205640729467556324293796567377447567198752490302224886123518401306608444380824186701295328013830329295910289044194488148465233681151908410398603229752255215690705648088601396827047617120761892549458525258451958124449084107599870078596163444517556803556442664668932253256957591694390388834589658985132233278000898861907163551597906975564994481041106338479534578448795034064754410945250009638383555805999895180767033934493767112415422435953174554362649366618834731174925539012209940995811666409844935554196935224804141363001036787259803706766958102162627487378899112607065062295970712394621332893904688270053227250894715072817794194659443026685869941641281573035670904791576977415791408013891303860113430928717775764439552343185466172608387266574839380196370522060974153723275352655854807289995552740314149224775420773333693194378895085957953089414706491980601167393059654243377268959988987886878124800543082159078890974018081334982014993289815891647427662498006537626588531483207834267893141408305730666998139285443480942808305366463689662300235310812884962036534451391618347369003242611457882151323892981672345926825938251993897806259284548893133835873532857186177615971967497858318309273445402176076501610742334596825673904219384489203092325045868191802722741215050352165630966554384758247515307463605363556222155285311232729128969107093296097026505262126256083678021010189732785748075616669603737977342414630835287920153335816573600210877548837350975237085487005674537443332553107693004140921302169836686759254089479169344233770015859908591844909337206922257632145187975264387658642275431231865710220329710136108375344725396182388127983387422222715278380996951316857856600760933850588357356253281661941648114695330942303697998616241360768301548711830702398369063987851037164140766700813867925031563428113177245255201156125730066272139882866484079094840361981592246415610526392045811549753078194630277005028834337563343454007091109962462554178340223613274460770311508171328980748472379764689662710940591573316272936838109562527473152873056679263527238757338579502206427026261225763516987604080938990078328299819875634421803082796560129710140722290501409862011473667880352934894366653467035628181132985630081456286056660800100648187361877351522069057943651735161672638421745099562613202809091066242198063630411084846159192862841637813854843189006012070574046649256437644445537338084828468389598198664066292103133003358437371473553149730008815191203605837810846505832021292357308613273518755027147758032602668319933951471987776610484007948998688686634660249753668321449469466064373244666239279391579629540477391404719481985094005054882244956932016815673527900102864188491542256739412786595034493414829800057782044955790279414817432595595011024348644700734641255359121891092479092731321695256873204962300972105504857346079200422891810054226503357805376517839485175144343753667906380525821579680911716083654319032247968688601426103833496980727925938286026303851989624412922459621969835397747132456843531149418711226705631912914659791307195875561250463453801995046696526986136930944946512351785615463882393768787442714402523979831457008241794902244908495371114915280139595437275903671377171472181287991518269304393602284648433989799331576029976213778943664763609077302024289386095972072698361895715951096023728187783889072498991600415040977323654620611103983639272402099912457793834935953221836431918193285628933097078937381142656238317771984487778557228015557156594873418396690666451619036380156331683021172556008979760134901398792149437515751190165682163313693759682074034325717003441703586057420437243369050114504590889524777311690674786223608014520553253838370828533417819219846849809355124063174838695887600230068218355935873954367713256432965089730273322167420754763205777362476239474250953620846760563377797225617595976787397077584252553884249791447057274697229622721143494969313760377832222128271291390718447702424579130100330455445247341532109596803546517325002709180847571782761654079759983763405528931147261903636413377332491230377573221114520131260872363772739504348182476392151383292095427253932356397846445403557415282529162816347893696747408962061530184520739716422019890899411427233430862974588327295214304296028660856971539218905328422127044193593296340972159174720937544984081656891438530822449525001533359170715585685750332423395230613366424372964982699177679048482419860139309988930195680140374995872032117562205867492596127793040404800566298980148892660858242384039351088998708318322952524668176499624702047565961028096951495832618350827459523189616903296217827358611090505535309328271022910583701588479622507717601564799416094377379830722419510705064252966826579737421447564676377695721785098722012695443283231932091048592853164216236891919604395366818449010017652867215477344522765505778790185837200121136021590238846330030187778675203347315269303780758671287307723691576269292104333763210401064017412122359647383318354525873566606124310613348839442448714058367384404404666814554241208362721659109118128496298436111414478618318569286147681736785573427477163879259735339927942524950832453753716061884089053753403401339493989647597478018005642245174251327205151353696639055678872858845897099426205944715911989163529231144896723031932856145231275477334835263756130236265700153313445596991274119956360529349103869485971812777376302114075705509125218491825741581814459017551390766679930185688044164204660252117152985259667932741545324203976220287003031619302107455324612350955140620558535232274096565715579770513722149261866960704366970818060910404182271046970496401176538693142268252723129049557747813634054681357114667645845498769212930767466831774273334318313038005210806475440509907978053327816837095040840498759311824682350128132008106554317062954794063468811398131593711121992311259346043067047166983868272533026586959327424797775210409340835597343044085137462736796842749768262826805367305037247631393690526629406376010773418224407879200915227249564702601948051010677485684712715583219885295676228778338937398193009813989269922721731237611405229219321510151625908102374805437988123280485669279850191429842314434017689185612389748746706762834656593881937246262875772363803444076428495486525520980673395072042124724874580140944280883024778070566491662909340711803648793133068929499618760852317104523076950768820676870302714997413460884249113876006123200960905343901700045526126259919899053648179768019221998331942403969494744390193767350936406159736793747598959494660301201998157181677570668782055754575387246186199538445507321942612573322285994922122084431604977941393417644537002734042727457383909017743425502331424440556524852099264750807731606103532205833682340916241618231461709533142131188035649372176584760518117059222616221890041991594216469611403775455288318396847300197167856564641090919642854131403763984840608992863581131248841798330956860157136592103101726577227221470111263071013562330519260917484162978192884479492722299438863230004597631816862841890509229445874757186265443769343534810026960085787624071454960169993717761807226263238148107750273386872110940499388463491781809498638655955823146354250759333877785698641833811852095431245299376828045872028675616800752593309200920488508061305594660361115364474601334680351451521470131029525147456086880325720217816503843853084291916498945258194316279593083894372781614588293009809453902668763749410455602066493718268411788634966746348101343937481059939634273283931566273351647411554571394969002782269331766227840561466967283693801734674133784059590646452636431208977235180364667917239270293976678159624383803400266998441967580219650433185364725309398280624035051617568185690077315025207744292440353445832590430007858569113855903137240635718227339331233110618319046291218218812417736255047771659299474467980891535381180701088320399779479794008829832032246292156666354061446900364358844097496738224108144880979218364134908476636938238568445953671269118301550989921072023651235278281447823913861154284831558097372602010161561462458827828320784791550080303758297432857493343611008923206451411974055125142543304922741603026474702025489266872234124380283267077953822193255093267755260585906376702263165345706974223175387571876718497822929055854118872671856921458538680479034943827859158247582974622905744880169589976687948679817265923144815020794617013627825334806859253428994048918326089026832701579315823346657728098207385507562893175032168879146594079729554875960670265325319449527074914630103122819566006008905149438917708235593711820579859923586444824131565122490290889048812177494705944470864250633059641793040221720440791572956803496437797907163674507991528015439588331615349402802098028434875745543409203746180786331580136638881769472025206707986083422981401571824608249116234620137778444672830414115561276745735591911386056480123859063668863711318940095930517156952032701172595780227477817728181452854749318400929109655563791094019035539087625476685394323814836852608260168029553932824913345614959135916155351976497549227317698205269231093930812499818546214253939528590623033581480717238751966411194837171357706043286693433129983464661909501210848238713088154288467364163708731450240607834934125370173475467163210874845121470358749911160286874949305597141832572666418548360631304778383010649590067788948453892117070295784033041898068875389945960562369353319346478520993025243338142808979956658500753884097653158964099281373073096655829631978971120620044799587080272480795231607740671722940059506022309363560136900782304899201594228808999834654333309086662867675226419562437433404351496252360007375077291942598548293210893992434585661063952129774294330918084710986872097919823537059006215941900094490130241862978131889230980281048660636203338669850271323621573161071437395546776331382799318065676287462500073352699331078607727188057891797812764897631316872431058763482423689125172483528474403499845779547069377306260472791803498444223209358274454037637415235838585872294497949987241248333235714906838539314686887610503251248351239211385377437898862440287499944738059632673922296348254455931500042880027163978111528940710631868485084448444053470128414917485627235006695232742505897383080279965644395140595425533706714726269616037596602989725564047284387944440362645911167301899499107777164281301944704136513116801823002461065286941492222074123903247895501298957199484721525182111111089195957800677994016885625742691997338377845639359281696623637823414128318124591038839540567612122324183159413278295547840989734439721116807127376217637447500794582260196229116069767298352592955299721765865049842637732602036165870939395145654331332737620187929341540176891198446118692455992367967629119451762700207487928923656649404301771769971122987507564862809488567021030085041837330986664899448723834636400150082905045445503924509781792263355207951077801650780878746874249695800617237187480060644534567342409303398287285743743313290451680679928907998201842513827657029786062196810546811166376134400981784137658076669058668717411487398808981369638871603692405282769367678071161304581451166259895991821414472691847907560146900139939948881438646141223045822008566407861657070474923508730598741722192787765959970349662336610240479930793517089109585559352000058883976595686474671316087645402869282836111184330958988727058738662196000000377626984424057129872284529602177709721287388282711023238847825462293740209484804752327780024167654276687804276057630322464529723043129613303577002869241777327846617773187262874294930359088880578330617110627380673299081198265330907369975571811956945622894500492745696149524220827487122799126560382216730392366781428261493326925204784358512887003299705890196595046390345355488425827382298597228859762847730824292843314932729734827572327867702197166771068672474816598165623329640118078783986830060354294705248742562954688536655131171126054584850298255238696831195893503301849560775463068604468009998216598266363141714667074844033433192125284705402895559042233176483306355900258070255834898070962033296538004084088189915720399179235244056810665747321743397157884171085292508240965203434446811540987036971462600330767493371072397605955861889818484039286999766497131009182194834628107906225218714621764645696135627759629572861034883225927480529839590945185900492116362730690243619389295261840874269020625455245696296321833362524126771839881485523124697693625808322472039611989587253657086559526614078351440003494822701108308387975639925882775862774138799825131199684687662844141554172655569056765911260403330418045652651217976157648088880734841492733225500554522105730677940355433465575706180608283641136401255596557867493454107936573775751879672056570694026548688809906136051657196054762103890447694357344531529057813150132973305265844085001978365865674592198401038370290075350634700055051864160821090038230337714787641184030520565961536565993905234039742381760063805422924277775159040081339405975645987725509755738306502190080971992160495553164128370922610822453600235062402355753523174319993514564073916413274702639300232741255932421617369909052093322029682690957425778889570817890394753651771415370370777130004332297126101093052601001347889781390117930058685825458741856507703289531508471261623427397535031809917900378636844162107038573955328088156039947867446073394700070416326338945092022824280577611290099885222552350149169764183014997935138442813182074558847631255835275121242351709155071041601260216858417793917265870567965609993907382518395513609579139970870097259261416557247185905178315430271248151217871179044049930280676289784132281794570254110914891184681210573537344830379390984322068166888905533980171717686820377771023403034745807695021041088382353611304772334034287592881795648529781182152463633387601512646861523730309783944559513626651424358732128936325848671520396512244414882195882581312988497976296510149546402730408459702473754240933281511560298234032147542385004321172496136712032298326204301200375851458422241860504047518819962995890907226486049951405551521332853763530285235566592893503819239121264908741713309632803697796548731845142374545297005152965528130223902605305998467666201357516771368171313165321726964731752210858254977402132134665032132038655013248748869376764942562657337695334331050488707958548751223029533514622286261077077689305769856058842722846237733435385475537233259086911499862041095918333349100469313708312351425628435011250011562143091373031221754455493430531663248490323167316811449311577587776040478584830395680113332756247582651519320715525639167659074628942622867536463830142343508301073787639634941453591141826574039218132162464149450081370441654353520224339057439883866642650898733829198489147365219946490688579045744216258472609581997319818275403143953601595398550843922227519259425444016108513758411903785563361533281394303658800982072382672022800806193186948222532045464454943375596200637972278223332418085040357090044288824760809605324150507743885097426862432147650246481806562942589973529027552301466359174686826662982145307314240992458435853381534942556003476706757448298844895792350283749860542015909639858114714598680540060457708541813674569197744999752229663383019339865656424769315922624151814505620486136554124539717072930493128183885423576550593892910158782031075640286880007389545753769092639854382893528089040622405640000679925156285216631512834606031884351818591195425545663906375895811146728049459458586364325387646682198507157498158369477267800895065642070625925091273056016206548649792368497943679403523060777320595269624359755869186350333775660660880797950462125107161568940453133615330969738617548064984822864411309781341427395164121034440291598865428535805189866102681421938204402897327846051291888136955014685383917333144088611771421912225647558125650937977183478419769723410748803552853405800344036594574978699486129910190673001621833651072174767412949392131973622618329304869573212772784571164556787654101182811146582156325978733952276327339039380926668948408837473092387306691764858531975508935488150515211202041181898725809154729395393983286363048073739338840619928216217225820166399104318645524859763766208902586502661124066331410763555304273725591449262259969355681079843544317500159618869592820141576704599948165531556238525399385600287329256509890194848346644014116111500281634073204119237285259446578495275690272792637344271455727362571795831336562526755427663822434083679877263181721213991603166975983364006215431179569967548932025011659539621858356254195821167636468336496691627685726136326639687270382580717074776610982111217623499458030784883050297038147677548737224525518492570778313344426452364949825009211382846283189156911327776826611476902944635641779659505941628407727735521696344905689127154045610020068816186633634874991525885134373752046971092181784994852078485382663050605766815683574611658337378766084474428512054266245766930740271102424786148290628119842013718471696179477823776028932720640130190988658185673433088953505588982338018277836384509349560781055108333163210299114698947374908328824848256514765637824802784304194204629000394174720290758056826185400572898989006767431896243786162274283335779570476074903936859787700187993497784482798261347226994341316811362191114157008242490375397464242839774806157013035554736404868811620261549399823648614361877133352571495074155220568109472193610418388368779861799432175569197680054510789541410203325798075677554494593273170794264187519871297599309881672337208226117040745333500446705658518587859048847442217073371910897519179843520580077751717166331372803208898571850775848357776210910696119561164801125381512345933269201276935174638456291653576668462167059767055507901486861379378892502784162226679160652270633202834160457694757803414909811568987494509115953519409369822686871950065534761200423905220129293909335762026810070620901226810358424173312616970423878025119132681625620033287061813604714005947315942784891231696646125553237736482843369595247687860792673538185844563249729835458353875918333531400528185923391284311095437283882899538388372012956374910248894492234223390228826939136765422919223398816521519116006940816047041762714649531771020766831124834539951942301638111823368542655327171018360462257669021714228038471460228826992471378549388002245939726617183899079009330647891740754751039060819832224976992731575743402670211713010772185942115318764509188046343282988917076314040898643965045014462501852832211892341134464684782237862960542443229159103353287473414979922669891694873604945059986061988947951707382377499135277604802408512952541560717033087777165938820674159127800271538303206785902821868292132807202905961601090259789104514840412498255982604323821280937765840447365492985306941515503791887936639238440671841367046005502802814511033258770599760598618116286679107029629435346955183954277176804590420939346504773959928522099824128677356752896899502267886376770085030197782662458093475061817956549230805789518685430445368861333586241944738598576874961678741114274248805267347252028252905549101086633651107956980966756366455339032143597374418123015293101133159890071414528676756417380227674027916296315133210730852981288497830708251600431527611377809355749613637750523580860745663600219909822457684576025658738018521565088856086218105922571279499015882479349943970027281269834310975548083205421114163050645788010813471573688216389663336079964644732158915976197322371640267183750600281478697062627805882578031942251570607708000931723999157205926529054156811493444355545975717304310279436199525218369235432239305479628874754765924863997320307975844718839573025402164284685317485387564633870592049438464921460372233921803360850368946047657524225948062780074472450482035070951398290526397962941767609702291340586878407145621364693059381856250015039401485732034377175050656724963373209604577549863195222727554006576002952494075001480004736071531188118112757896570849896040158896739333835226041671621931462068682586039864997813544400772219146023615578588607036734393322606498620429907023237634429776058129163390696954077240612864331316840150907316099767898356687419838733790303960994943110136081242261025579133210152624853838765592889959794115030438165913729770782103797112650396735941948880536499531102236354965704149770249451004275894424268193011644086276705631030494022398157012016881339246951421470394142999381182754001891063295755384963352760235226844603922074133119285891849153801512196618806480005004632351813566500830169117605003994904991770063783595061082503598313882220526917832986781735493688687719633150949780554103801418109249689711770484232253048707125382447184397264145269110430478037651072386718803311988595474989735322438555140667624657781850216584834783969853561266672952158843578237632477549050332912266977424743988876479346284399570537745707735122850978377246885703092636272938204937884534325610574473438148931986638719279629402883398550120245392665488618330336835981844849998634883342050952163634109832518790649909875357985827516069193807404597601835697640163340339678494813605296394297074451970945134051724782193931166075660922682176877077649630336108725162142926880180886632860788591111835811140399271358371372066478054914070809176061505751203702581461638053818223957666780281906675880296530704021986041471105889131714884002760628422656753396815653755214212619119912003091869357712228402837621988493912812259951374623824002326315599929170550715162659280015159800735271089320564585426548345624301407619459710063929777338793236622984487867519743781292003797404848107526797768456363486698768294954972955362123957450974717608099556039063631924066168182935744385280310845113962562091468643538488625737397430137315067690954578011411415768306307510265536336047720574955108388051157577577026846451925514933229010829175045851377757320665007846654639079582566154590626876696530422654768364381904316183881907518313995657470680086719379031441227507816949590234685881197509040389331751412415694913343436559733815143380811784782713402799271363287453545414162294625671327234470439371215031126102710675783351292416917457852967385352013679362488306330703224985271784595920810471228891509310349570871485616606329571453085139864662169235987468090960021889614105615500593456979836769305354200222755306650525895324501231040474755573018270786803743166777116988271311344462659061935924319313552356013154357527307082295173610975973415436015730187025425452936297930865393436082129840037229639535832459812001090202031142702145038086218699988472753162262818223337247211071257605363921458650280018787872757463265656338177947815230942960977928103987243325268583892670473702662074082780725373734360467018382417107021005303117744110100018714345348994450571674601404196292128656864153880266541408712645120049134722650045208909990446545574644386495530099220374419934535556048958459448543749956095535426843674498162479099949333113832138382956430696049184182120804435505906575250668068295687581389509369563678160063449512384813432816506667008790833756458701586085330619077994987988596019344160593517297202521116650717649436299434023128647336059664593356402120871893319886041141402218686251287947317992012996246744032770299150566656588438024775543192945954362004846959383443745308106887337051803738522481346767657221517460356724043324686260730992454668126723450390470478974280939703882046990567237906904633247954657144530341490284995013504181022276090620775871976878209336269200425914604881417429950122522637013853084690222169102331018082202782744332650814081424034995289408016028168561310581712372143255823968586346936208344878104464133640950843378047603787375531924201195227544287539979884033648288528464313054474966116133595439700920070628594529190994064934576501142898854135847063106154015510109079730054243317132683966293246138370116942384029124851046282192317793563112191013613873168683418783505510593772780116835468487074975902940085066677833840573553893180525289027239917403038999507225430175572572298245233916054145727195680900512544270787177439484804373137138567177491004190725570944007431359011293377305840342046705968479552194045896990703832310167640684522201085027356906932010062414608525321475287227436635446482339381534715616305576854973681474362393640537601308837120984560430571862802988488555826280753316750219074368137624638874470915321752054872455224778179588378818218072138911124083713867959402563899163644792626227691618635182712449131170457008145285935743450291459333434986394849254932422455232890157623811885497730575438525319609686892752524982223605825978793404988674394019385420380219167492850573161830486677428673859409187503181472076264384498151810656056557147950441360326164684522202779302870559771085009311365378911846745466650409575684376026392092153520429077397441064066776284974121563184991193181621229088950662868452263841858417406506498945340831600556038557122566280328913869327089958856043522297375817190471891062936775304610427559897781651076374844061534623390562903984863453594991732104434090362173271993013491465132050263528345702130933222110716130417431290688635452978511035032350992696348093753436790981073811550805384402162978636094741417582867673869987819933953111219210048452744651328583413610767565900235350729429447392386399104305786709975700794262497218691698434034187030115533840554123542499536605441146615924252194593415383147890873305435157629171262106074995671723524658420203466785688176295010196865633697407427066363164284696591961010518306347141611184067989140341273751018577013696410194282850621762159555737927428083689595783013413134071056282430939481291219536613720544090804567542760204010364015845437937376364476656720592775435714764701775195696248909763558550977280523735182613873581308776419489978742476485724291303363765841938572861467658667734991061091482387491619722081760088945244204002342333810337162570711390834052766894052604854728726497234152643384036384402229081981428858719613316847787774519302928091021936644655054549209984635735060112969467701644734994079280405653481847155044966227076860572641045268619369106013759707611226586988198560451286763405252291407386978561359589721698682765065556721810295215096238047743764307942699421744185552465092218465469816752125299953888315967792372362252669261440613304777301701826808551732109623414766680658626564910472838188174899859963020600553484381131721387818102117322594155407126789308775952514051322465639801188508465186100958996241231790917452991270042645973720919610760026644713204275260482859572097361471750065812232944212140193690280373312813306193694050633750177778711000689892751326491147625577578587093116834442435915116481975037164937514960135372130701549347074769886795990796553227437266962005568301862116441565504189304128606894770733355979107835930818789218816754447395906807038693315511623465957226720096159230770453972856250886587321971332355072973536995289036176094989610112660466706897951837036018608141181408524878206283408945791872185845815541201903368495456191963181521226355256678545555855454390872027585798654173471959950473762663694979165185999284990070031786497336625828049614881795790834197559547817112205296329149621455146157323500363732354656233424165063120894936209558447465696894765526480811757369030479703410405746656689690754296480079517452570975935846360702239394999432090211533865358711408163328524162779892167658643409687923240293907857424662369503518661097336068958476467886716246256647593843441177560919469950737262283704851496179842327990762940682974740978024896474894643043960476344606621575573335306023219035784998558523352775282874415898633516581126057969897834568342000627747130051377658030771909781502039941206044460017921542620582017864564044818070363042665305628795009814709081732711155234565686576982256563266452504801143594548737388360374796874143398009747086009872366323746351352023530222371094652689832048490140602631633472632313646114958641996890798150043203219045546759038520414882086521422678264813820800330957352509645558086470326929234436560427408542650424362223784697711233898853218944872186233095528050010401165900617235089207065483725160940048087935773044457226384383991568290789161542527694722103046654585043142439946012097696056376550758293585037023622765305717021184527440302206086837019515497700725488318234574961490835934737288750648896049282927186639129348823503388653651084821144382682954129330928952936140055082433076049820691105712006032464285517027120934345879890070238373186654648654681539033265603179209042167653261283008084223577193803986007879429320586014348225182972811055220710844407403035235753591223833365955868712438797555361284497341840527753554364112827008827856392023192499378600285141187654813978494683797850121439124085710409986019899011300082303081626998835082074107540616380492340470473149102280633613333731063698294623300762487643135261726707161161926378983243095278482289393658343245446387474813228235355205066331038360788474186447630907023720848985203795363067566158531046599817368726163815619698121138765827729548715224312012662479035595131642515469450262582568299903347907594021127158524571916844234566073801588654419307271850012677662945359920722863128639598440726146047088376880713583142213591762490273731789341164728450551504879410663675233990551708589961152696817614490663736530252872927033920217371591840183245669938086635732363662186705912199775309407525017143660743361274000048190879657820191768496039385227569403733240774252859803885990283007668786316566924032121702667008485565160184180915321851746442255292459695332142671209627752476222580392026285299125238162692150570270038884309318215042673592890005742489640299795050815021526640347598510865785054970842361383315493471204706686562126319675160746777461972030694253253269941155992889195893232886669591557648765864022477562230564767371414621062052624170292244978093018428591342444781989203877377292936037076389650101141298622130231392496725409457518558900741630926434789154059823569701257936529275655621075781227240266750672181084868260725686687885406690418564468476743344984112416044182465836117547417710267941245530495561250933013663909327488190835341776721586802259669134191709508694121416568151232279745904497179940316989661671878609756738125644673473135674921673223852556319403258045574365775955331896982014290930559899589055146538405715857943972676236291271639846563588933358107178998595355669449465715172495380492335941192630702463154892732645272278874616094410104430728829245378490095611371410017186593196990338983820551724122048314447515801404135453037284961322973643269752193057849558578290542593527721987166589581134030895356271129120663420544091316576812831286111549472070664654994179249035187371674923685099595098444591797500578064596230090238161721186485086022182356233389037585736126609280530307695289984337441386567915049794439982847208434757450550057716624751575420497527755397909396143429413843231883655382289222797436403687853499371501968606802753136603262070368385983719106057363107081129897708235737294495530440918362576732831852078436340140736594587961827528688591659073157076668724557786954891702102796400624335104608863129389307376649786057946247315323000610781490275065873772984085785877047202433395698619281274606812827346958617302220840702912599162839199710346298063716687625663514145085034027738065595266202690151652033996863589391963517097373126601931595739030368836065228254024826934454195990396637879586023110049920686299868172196540973028825655866653982054398433432225431318034232484142040944912542201017309089982791730497108483700122516305020623277784538384622038041049716794544222759881308739726169436338947140297217393892901249534172596187209178291100987838554781305854465299632392142064670047553189838593609681177220176570756893010326933852608651095177667123549221946313683118527206431849252866332994891927327283941539991947569668399418849704173046274138016130692856565744738388790578165576018274932018204550013159945769187389005927324669618628801171642274514627601861798667023674402631836724548126164929559319301947720158690337318502603348837608520786670219494064351770095168799597650160690272218946783747121615642006899622332247893238930144011776029975334703786958299441440590493106693557500929973150731421340367582596480146227281488239903094678690669299869898130987124847078035613730665995831161191605903795228292181071083404457747503188717392383463142660181678143702339285192020488748643913047290440507765905788586307152098667911020441421847768880476944600047808933050658757685780921786824713446325880434866000302525365679045991601608645704293148806517298942799555828863894418131668729666621165938704764776807316395782759442943459275553792341862495759018509673096754667300171896988813816444060971444682535290240317948877291942832961615559224404339651161321636650557731883540360726124589556679604810733271442428557059655827084228243177211884573124543207754584831230137837229664489218578258129132292372592095998227023679707342203417237570436299291257030602288559520362689356709298566376548796528725725039003233575161724936954442380194784979578001932063566561246085305518893084120218403506251620872391281863283604123165381474246133350125965349085332091534443448327502642112359212134412104029151534348993796744160307221223837291107087323503266848495736739430706582010231897701677755632054761590997553377501150795705409701322339705554011245681749297763833577286189825605914240811884023849866045420063138875913124414547325025742391985931670959492336019979712358908128118142020640469764915732069771280417812902628770472199844612272939291321174190506864294888456386781863306556343642473783394378295871576398437739138444615616547463660892640280665998902403052691616773780952073677191858979394774561012104943646026429255287050468384517562679764646778665337889983960854530470243348894648392212168401425435883889078497363202447758932037564286490636047178459609217491092168156324015507824692705244487566720215598122337804899260354089926391634159596550496524836648240045973269294590281415888533701011707754327248902727249912975428691551045685884432494090230044301597378987837495788563641850515988413541607538489898680773078633231306175662943457137406835897422856046954630063878640082061473089918994769141210654933426689770845041294734391607876392358389004672863587580908285454335843780260369838112544980600399816075544058943273440152342942403739209816356952329070924715743501951380246575886865049253279393786248997884763059611201316355052226109257290146043550484849262656624787143843423692792350142422592959645491846676788297144839304654000658162953959619409429142456552716101664966030427775993014619079506327961925120135022030450955742677322584247356594639349416967329979734582706287174161579916868615599652759856845451650065841094953170953963799798335199465881996016742042851544405245932055066158648995495667386079093324673300623731967039055179506220526801835859509501651870285665901573216418612080091975055729726501900630615931859570867992498298532259407602733594847619380250657153718409744911621955979673830986011759758905405548905817631170718978635544153052064944097206995681982603244508298596918898408750227568568342107036205931551925659807820681020382666522065036760726937775002878423687753401255267023248985722424152891761944643749049101844841530420584987386301907238539281986744422507513370615356942015570371779380786177472045666985750649722036439061908043296553522206676248165470105328279171662859173977294263418928251784055571055044192296784875188917666281776123809900559057827141456290646565317057133170022215538049720802390481711853775362889876912277153270752896096978337690553500100297521903155969183205459129956871183976973971369621800103251255560204280103556066979812013563815096771731952764205963937671292881512475771313742165870718483426029856511024835723724088753858065347516153164363621385015182862473951814613930784823848890958018556171290196934100605522766417402904110753084618329892898007254741108224818272322041147970353985917641063453917886554785197075850658056265831256273435330879897046081372656148944340591597160709478155446623136625921700725227288456400719811277363961248508079725338384938584982352509890746783816500883879680955772542468184000526382100222199756779558018972841997098480225357309904932249066671747846862367396674929444592786602885959040513233996548056823519537660086179360041065591499969296325904082144406033368980966347809357160983701034323099518961930992643652964596500718557091096543901444075336797738086903034272232657545375385925458775519637838423512962752380627574029006864914186803778335864153079799212921245385076622798902230471885808426538294211846612466413687494268471138501688852415549415623881635239582280535546545382099285989547670713847982047794189014048165922492828399340210845898193162224097424109133093417768648687941579635498708521880061027639976152572193222010884860517605813331291420551350074812441189057089105484682540144389518456078944381725602645981682853412405554124064206977736067973237275719695250265905381447765218209554877866279257095789188433624633679240419778378298505861072984877178331640163809695647793631015964057082225411519297232895873744811841826282189649145466357305165443746130787324208278453642946782480245091642136093774768330414572253547085860735572877452532235975089197489575387335195526904383463782662600636920338073237481075119384535239772777669492825358091855859755460507318961929444771441299655909576114642108191427806004409849640436166639051489746479507223021100624200485581086753247857339956657114730397559433861762293854147508345748541459119791700559587969550376085200328881409215509611490792995028838886650961922055991624128809212342245156855131772026599495033411282204078649160850608239003181433130934848668097890784632178013226028177068690968287812466728128360020642438495603354806145641394559282340733306640095384303613038270103166880135934857215013450571723910299949178289997787469788371393165614162546368634910054843152617950398673144413883464562021923809010850725925516338728030002722781008154967794995974537258412849806122131494006342105025640787096528974372926414380262842271160401989110984400070307921251609340180795266774022192115381186605293937319143014103610956229806133781556232220779454234515104291099475547975692690262385803457090583120688447210044176409903601558183114808450440664246220637727453060909839767141231762281651486401172540107622335210486861202446577829100641100876377622599905279164529177313327282553133710685828161777781329084704147767893208415155570120257904241177543621526129990403709456447680678087951823040896293508801301327412885472306744464247039904740058956838730522444392961804199043363047451550002459435616694661177310176434775002065974055865830019417483736891022933352912956165359093333883336794319912129950602084766619314221975822392600173579028941767335763687504362254045213063868905885926137292650017858144023822035378142872426890277842208141288715949822714377109335794911923366052927777152562702498275513391378777778150782009613673250025336451106798981888443475418133315275571982242838069678182421769516465601899641835988886732020084912099172883532797421866695927039711018928461556607904269758112595720012787245515890463849444713817932942151079343561780622195004661035272298109282890368298736019717583883598066070184641888575778493860369978376429607950729383935720329539894444623903910713072962856981578489716710765200984844579133429812607394676926553744850523559703257606396457397358509836906780117322981508385163003346016482825090226599288348658141027921262893669748599241004395479524032538175708868698679495524831636754079290613120474146935532786647096635428464988410969750882986791064951416760198593527541692845598414575087340233102030256239091969965555799361209736861923616131686444985958054221079300093818966003252276695499934708411087666685586577766755320114429480878564893585713308047051996617210370385480824529253569941679292672109525196274381512691470505131637540503163084257895172669914101829138258297952386331112629658075406663928257726724300198267156603190254898628422427649505565816449524183777481955412203514179698451252964133629514198374776916040519745168739953432585003685581754549482108943539689035335482579422615423616478727108556239605692214663086181221910034205364567123187947412837065053265232052743072445697160355470792906561487370428240327334563399570461178563379144388125329657449564023451743609544093510810192135627275857781475967162883976884801755947258251293974378400400079526636726361800531536553437038579700535918146651407148983579898573077804478351925672309145293650282903489465697793214332879073383483934610734966631360958337770813503601994673959309158015901398529164447545978330169758180801147990359202132619072303462745254647259283689733196991939611709704584231117989991709356366554988345079332361965579404531055560453598356843725179828049401507746446476832600374742272337021476688558285976806144046992049296370153395998146200497173523048692197676574197902330569014655726291037354422411408199931982875967192580201090774389836805350437689370123335041964998087190546316453280081567450594148146258270369615120474206060257638518361973417854059095001657625756944465198179504289488461295139390814689893461175577844483193089990522426463031922842559342712812867279280009125873012139559404443118744008902732306093989239737202599290158354369250534815684924312777196851027537568818978436137695394832624191170118821978783708778264280150462583596457488244763470452360656756345190787199880762497900635926986343242288256784743817255341000169747806294388951746454267362301438676447786490982522807964587330170521400762477604092263894935184710631152308309986300201722576972272849166253489588444452763358035295262993303669122038520892841699722142721680654741003930524361154876631867570126540612821785411021078910753079422203361459737335322998030180267158748560943822906437155652198786596886960504456557252516249475218463735923230131609845201561983383033625684707518182810044066217836278725092527739292553939186336454328180548950607125260198591349366350855957728868142436918732199427365514764623075334150774130034633522263091929968538845018544482349208873088615465883912699207967844772992541060065640075428396838314074833433292047597637616486523321086154086050318221101473738311775680395958850802867936969627422220874257687466061190723045352273060266409986275323488131825513393162784619477017555266443765935375065450476183974589514521272680255218601933243084016800945390295086129417144654362233088997905857984169480149593179914603759977667231961689485385859276899685830686236607056331379623886516263898431386280157676043696991350449130058903874713124034871509048798543212608508974801145350909273705874413069435196751907958975769574664022953833642037872150025424804285582408586535471308372090086814264396091049612249785148949088028732260436548489336169859866858925493085894790817634813288773352659468734301064720057007900223318345315684683575898989069830660304016994762447716399058271018839329998781769640395508289842023016250147045376916161998111268865561461741831557463612336305969332478645501583478270340137777432219994460342772775170950802340705781894375761894621741763266015946334044617086346958464709439276937557765971042143106833440775835644400350533617449793631781227584623795803485320991886411812034419979678867159689539959241006682800574567036744079105591798781913070587362822493619530852942775796237147111242281322930052085572524188952693252567868524972547818329352798810713877046236071253537094512572911821382529804573528501589338001533194045081808810857460960667249683204188884064761172039676900478729276598511791009093834553297055981399074872290338611216490893453140228899002309596984087758738154964706456707010683910997753533230873014153099909612197442842519752143155286802469577368554367441138982114604658115797457993613987288498933230820750788037837774723933509454694058153791751753377571631886528000350970186127456238865071113049297954267403661614696532642981525917290939475270528131196815916202409907443847288824361013668801036094823139471535147578865311230860134181710909708570076176077146944594990456452602765899676364892729587776950886521495904982211848407985768895886407438533855070724378017385389432095655358276104061900063145695275247698476215054280781291457202010496464757997579194798008242017550171658254217238212279206091630292778715157055517929045153466254080557549100192810635173127238431565196797252777464656149273834717819212537146482339800503004203861734005255006803129978078118938144018536759321829630852819952404672676110223234823377505869289896695438668157646460988844642183020217391850240976607887287200764388169374550356371564065590706534202363149093218551353054946424224382493945753535032742535383903078983994731730258863283676156284285411512514398600406747916920596463158561633469853467426859325997969415419179434528420664339838129980458423843920624910750325202006149365405420713127857735726918225845601688477135597912970144509169662981497610753204608263116937659132860540497079907902752930761195332377114268380198548970853809957998401769878071581569868036414486255783236881849461396801869667342999260271642027107510477455272422509806525335444135237615451717805094606109286468445729700632968660101386889011556972223109202606603731609593171416579575509798481192471338615044527717537808207077822834755249936492781767978198922187808694878303199114716864754481066040410122993307835594209725359614471172174064909685443726694962912185604855145185669370336121806460757096149535563597133342029217161296248080901382891496455822236820746334883975274723037170336643566626925368284657684476807870724988012625965866969306921104490703514878196348174859009261193713640642226523773526281054185206646272297764117876747457792871944191669798677647468306779377959355435802667607165124003382554648078127223320498164545601508959109128035590946389117719560052053473626920281574412408464085466918079886081072972823595053152896786484208813802353060150056224543058759402412707863748900460030274438185399830121163752295161306016462166883306758333459570821802011930989410718689977634908566064439921404611705245675963880263306073115820204819521279995009542836455671071145858246541107179607954752004795380632641758924478510847830753235933981765630183268178771347919852921573309982933410600057117584551295292869568402312792859362953147290508961920549337941818151872763621367257920679302261166624072188341813876433982549185988887197423568420253005693722179235579270067210696610248216999345197092368085385429872860341568947471542728863126297164686239491072240910416633469226816451474538586592252106524802551388641906192479495382910706714402551467746450200080723321464630596312062031524119134336939617894763740722390911317146607944723911399861099618779499350908309845254257161282017686329035262824003102315066152471188621761684933337649290234470319496524963088765761480481308963020324983535247588503468579986620684710534886933976910597907823853162493403702567297869899634490450029351595539322346037797744483096169976910864614413508659675950507419036504381954572595610731239974544925395831703873357719692901649861426205839738380847053496650235405335324244799265264950087768404400587085757275810025202506852921634223672776405851847779824542953150080569278603635500578807284355999646690139582385604666151847280154520213465815070684742356471284059530522337872453879548557109997647193274455828634371444796868170698873847779164744552412748390914764984280224340082421887534322172136099319186722344768533411597027850334851078264934086146115822631916783163016600693861686089854865517370906808375377572203712008793711367669032762359831590062113675571812655681328264040590618752768716209394431349298522405531257956025486572830807043171305290281260428328679585757727281909302258607803865863682685808148137438366909635623840736790284225078088711799422449939702408146689259730084631184920133009058256667969558803336526595340231922302937651607219996467660186220931926156035895432848350006663049184002435987661165204921931089444433251906933528162536051826484140114608459425091517560986879272966295943022078280572822651643094367563642192023754238533717613324379818733375012185768084909602689479703744500302586981037388261560479625693215316425892975726257710268198043924138639655595737959406601735875834913520470972642249433978750124911664880904701579798653734182469645775766015622610183186305739202554815175913182237535259737364216311877689463273545371727790896301491919721523075416496886881422417690089421944435584556554167904197940922973956791855247974305501238937917795924091651496588025165748609292655260183384757715598960178910262722771290999831261791714050375865186656417908757423584148858242835296958246057089835550014230909116594053374079994218863836538154425729917549187784862658156901431235485710361391080776265237801670474581133008727162945375672252699489968900650061976393770799173969496261204733150260725503371324260028185078513056919182731897846584003615713171878437234747454250624574860620132862537755809440798977369125959860297631252648458024440728752168806483580209209103438276424459478198327153344330537924728579548439033186246479667547892725055076458770068456435255495016942429828964023803940773489209488458899896840753743044831631882888318274363656858068103001548676646248241114768793731627569642039099373035278750318606992950147038324418865858345238049150310083058764148757024513574967178933805872846546163184531771167798300558592776175439139926711806160069708513681092278002869646087294226656879482943713087615478207415009788545472142168411531160691861671630482616549344220716402694485356173168165131747607155992217780286502961883046766182684231615641830407536331916997672435697779485723556304165752769998419642635521382211090782848256763517165956933957969846227878047336821776999420945569729276073394464216848434846808208536798241090616964612928510666044713515319820079013875367154066785378533944470906012556941449178739203635959586509356584470505571765526217247532341265078494951375204043592051227765681256548950812401329569857473674931023630744404806633972930817458649454916927210702224153814950973511319296879428072975888901978157599385695316838961746435306478406514118196201152075683370465357352837674366439465357220705121758555544382437348011099843065731405635766088580931151500924709308831401032878622450011199986175110375596205485868653973338767449958494775664417002192231883927806198410764941242757064090696372480335173243742160119010133589849538392776614990893413705783998695597825784370658928710264642953514155630534491666232710269305051278779119895199408483841625633225162585293978675825949216352096365188577501010853008757689688661449086834906263290981493832902540153556875228328212742726355565621108502364559582829971339315567032224469828163201308349942700772798547012549774258605208013524147664510129264319302333539104796800534008384420961193817210511711835644779744491252035450743222894555616567112321305826656078721006248207155520143334005033855378905274344258549330056476913220605033267909587125311784890372540966258091666103415979896393328153701272529866503912408275956639670375793399515329850294240742154344558310542793819598145448066279990391377996991897885032135962850951382023854213972495797333760312133483336285477822084914283460478304489365134978741522638748713498030687415905364340758740419437332359933285593480222819782565940392410318510891744499324108914351701311907318598501507309825797005348766202440637267120308336203007636224822576351089793920855152601350116295207416160153600964930182299975883131085560402967137380590846879755179929785603736825267676623645117077776055762165801931785949014411053156210069612046274502751879826627609105066763181832473927071017952880123995541338820891493207491192974834398923124684256733550548496570977036061584089001980972378743793965697996062123744607396788226767511928974957003619382562444979174830920438433113380239159703265174703624971493105800242214327602225554111235357880293392745496034744321223807396264251322582747725196833552807230122343926275316604073407738674187217383317384408366573025879036945234747764915687368910598135914329758142108809342739919720430178034838219917394711343606430737884748362783318921077592262339026210056688717075362440422143376536395111704488400537620840530670561464893650188175657735701375507904699968118466367211773952923224725419439301654133820565304583466893386755725352262812306734208699049228679010153288635938722474245504571594097515868778874908883478514617353752898564969070303139030937739015649537970497020789859588819858380118756945841574641177177181113638068542815501273801488923302990345824346597972606914256676092953641048167042470185413644314593277479477658215050504335823989881277361561410570243797365036010628273690355099822987894743884317797461849542218120190427348048877457393153592648667812375489082388931218046461029865289730659044454241000423367798668954329712520378166443294030058602684052781156284010603663662649273836969080604403453056810839962014034069208996478334703288730803146794984142123284911571525292011095580804828150792097745373621279292697398579613738318397449555504652273993179073636331536968667689603433287257967844991125003099246498996947938539277432423851787575855080076768517651395485638254152942950250201807544877008761697983995868491135544477326298571960092927937070560978042808281128117878421634851965492876350763261779747013636314587087701755474137631681044076547789837006652469003808417796613025408878251300781957222158310446329400229231264172511523913438688974318220749520797086309668950626803447910211522155391143868739630832463538213259249334098830150227546946906858906299697715321409340305073875331844355530676534460592327426658822864579905657364736149794092755510731631672608422529329265985935948800618310431470344583329889906813100771448959303311863069759867644109869025907049711502556275112152112921347896175202684010595707879234202322883215869556651512083084099702048372559375888683254437424158348324362249088379875406936979303591929965397555474745142090578317807514342743074447258958164889676724030134535613650297799589251776238678288444307625412172716673979587763457124227538738413263146377331320520451605201442592160687166466242149077022213935054061234451743829079305220346054495115536874656590368660234662863637635100458014848701743864246269461331730813888466447292514159552871479455773096081995711999867619171134871913878906588363131277861325590804005690176964543263317567618685003405198447771555159101272389020969860741361932823016616647547883800013266172602932429035556794052377729473223053088979304169465905348788485560666466748717269450591341476193280948227716208481764554324432698376675946074791572319452550179070941337104562997572392956181573157692968783523564386061804512411743345138738661516684864974369082799291743759453357475192019320442036671712319550332349159503824198391880655655331843469477411350324680396582016126614488416759551055815643915829295272394156784704017809465274116672199672481117482851754875997579516633686697368219368339967100471666625690996767445982767056520675254578415207641130969342879673579674013797136279723199369425453360304656742151705126326219371071928026474543503349540311221937166573478400039677196422104721861302092626719844966041320841603612286292800662675953568662044117771916095826701742435070589039210973582742203683711547402323330634868783216492670400704688139253396321728487589626567492909608072181710005157238076332116497585047236905027476422282139614604438447177654618188388699864277381365293069013042808357835519047262551625199085906878686498076427113974647527354128829914812357993408722114645012299896176722571771007166177715880015997617986702687554667281882169889445898282198840528712258184800760555175022145422281685288424576321969355930093847378806581397222847118541399398250944611512883980293544437933449810969543567689053746401589073438472148171634188582699081705979844794145600348987608540922263089172073036303499290652740436339738519008475347619878734823931262083047255507892926309041472488801347187856553200976254536478726389793320547353073790310618374614068211768819854714481081672095829529956625869027014196176863706506342621240071748214687709534501927321333198844993165587778047814473748535783280022551948072239351894598975949983957236694325750478513206980704582874850120903613261425545314830176378926804808407047111432260823959466468594174169241668062574062479356059086229525310837364748097030378491166349833687357709971437492166178772160899031809942652817832781700050264015920599036327710951195769780111331879697787491788330869199951626569673050548796410824982311953806168521225185055556635248376798951401704000042006373866209435150512524628418269857264516518820758034178943281412684504115992543801274704752910250112581090781422555995008587981114800678510919795920376256875755921527784705791071791258245894125095268651635723621719988786019632329103412012631967907660556903532605153493380865115931430594906120459330341742431091445709385870748011895770858078548302736321994834815448484851945021042753494993474347074994138814274516897816797635341375486729784514803548661063426065159144431735075774282548286850033985616752120964532818824125942054408917058776498639679290798034360109250513383320980059935705379840866453867328151636232802424663339928917659901336558428054052084070447593455778746190406939148826990267092685502690828070198263001848065043684529800951890193149452255628422730793866787762098793594766795137496340027762960873162439802624352423700618487475303250915763486993484721847522945508336633050189080808494373581080336120991417121687193511013493333454920597140515177633196567337148231572067310447838199605611898917417538083329177625373025781390142944252779359456951275713346191780391600309073472694514653676922383903166674338966994998827301938639596088434239304717798437285769497022940443032796798152224644045086003976856009976673802129191206498282397387603600458040630246926184828180437805090914588157701433126296691489244788306569366306211503657278443546661719343577366632095808826815915362346261360761141770787080735006731782480023322727681954250120571055284327432428163123564498102855586592479445582535677522586861005801721385707968959252806365042720226824653424637140145258712232571332557441506716863328749516961180803497532968939128490753388872554633752927331355107166674227222950081495681328069562687529718912978834270545661034952306735249992764079855415300278841396258903796833524712083334490518427584161334916157272956132890794524675689244473238059248713751068997552059494972586840913523931179100637331238652601499476333430916210458961501736805862337312963777579313858188901824471161988249820279922645854246350697249173965288283622734634813403399317870147401470714343475434215889715539997867058902363824573319747528635042447250966817399642361256757572504063389487514390990169119861513219728154964929656881098996635631496596577430819752412627376396308577726365881917336935869670567646956059186347447746432619601375473361744486075492368396971235410290726088267168858394588617201356701531952710862178441703873794922269123399554141191717185074584493773216474853889497051212121083234176921210605059076046779320097306629107857684224675725067637427956185081496391814688243467139319890400495381990669396457209369990704509458400969457221686410129738850533702479504853186778984474890831902720590853806909877170757471580127884784976895010716015585221787049983523683016816106647544916734094337703900269316816190872676798086783015557138135827290880467752718172879481643833750268093602298052239115461577347884685128783850160474833478101848586933737990319942331645330702506528021264503364615267744198235153556642693921886801163174148200085811913544334769517611604799938093613588191174969318156108841450007870122867374734655146421575900957879722501158817260051415245395741240293070555247882663488840030863316586012134316950643657068817533001967329988959814760036065172867854168056907694223067763515654193199232535286841645225800014578993747995145816182503080129993048849979818113867457061847611227089026117519276669072098889213713876215305062177491145881814162000435810603330651134732096905783125283595205031782476979619248527673356945277686753321054479753671551958726459913487841466207165111862616061642753760873951956484046610523027913351470340500887966765699518455234768420572628077274970605172640107707957979237392870367548950437302667591148927955699825153209829243272689978368956204913424420957621708914249747465575932890401021732325829691848560099422776604277681967086829539197390439247863655691264656709835507884104521123459697690593028761140875709084901089770857580001222587408545271979494642938959074238493747932944085763284985015835643416307589941475563165504970425326964890269881427991437108156733911767151184737527962327827801779302733884402220792302157471143931396638656865950872580697668824983490995678923631396668197171245512103166361443929826859219370487652752672056115420892941619742409721440612427851970603012416330196605931691333360616525715165840425413808972843155824493182793141240625806483902170259700580545768393277100816593633572585301409214371040252686996999098017303443423003495097289959712024208349212409347986451257144896214409140984551552927138997417867678492434455933469652458953413561775090984728779696015836285916254615769353532401294621958322176040409199960770994414979839371244789636336892290118499735557829323175118217117268461820806519290155548886993007223615006092199682444616017115373863524577345215823843975821709542294402066128558528497082347264996935926634270110815411320628154713109560412822299598465570169648872573609969834512967466095955939361099099976665277358806025799891186881792018025982291909104681342110888648664609033368718411993956065836759792710128101950407874853994466765380826001859875125083947345014948912324971477949641899523792298163696466245502506990482397752789464405366601701984544396665293515951172756577305831904435875265419235936297944409316855320177124982581751322119713400522890742302747821408227783756805121002607804869963789686286592638874053399047537582989210598382088133308258747956512704161238983789237780757075743850088998562400519411289374827888377996130769938388837225308930257158675943532038050072074213977522055388419834230018013654062911158618802364014615526967664181687754971670444373423763193652883742261030030540073558952458711291862278342015916033342937724923998611450173466090050464408959177529502448676168970303320326439402867528599646484712183758062452559887416893892803387137383754380545915147795777301114078440436396586299550908670112910722805929943354247675684556423284650944314450994029012642111001552235985576963492560961681479724471457910925935112440433786059542298381444761634185277702870866376957179968997398079432343025678358269156566962987539869160466520237285140166095595050269964424366186663435883978240656986724127380698559548075911512791441339788986544333073157514185631955556969140636089247385030165141727054401786029203682995836303128008895521021654797423676243664911118750147798637575249473417955671501042930508220616404900006031714878651315721359034026509578035879249666506755513471131601661802882549211915318261770905023657392017876274113734605877418918643757956855654993956613335536678416716143409451157283890461020595247138238430507874420668432497903009911824515653310863744666923882115075083631235621472815996896130377340886781148460511370615896829173225993472891842030756189665386894946876330963874164573660889689916385294415300190942094310086298193938627538400644356305418891521799410542862091931081412612951436582285541469114153566160259992607135104513588458244351401892150244878849151600772224001391117089637219400573736034350774106740463683584668378616025670988982211773513349961640968038538601268859626747799033391956596781613048080155169884978203317094756023913936599574680879269114765590057393168435209091101313821603272969476162874378437236719217590689646134859028862201295492121998045815384365298784777421583001336987493444441041686874694736705589666422503916798128774515974336332742224728054655185157694674588641737668923758722246359704772633449867749594877270166593578158105487760161743954187200890187250902063770564962551927513932741626583140417003447735189895265923099845766448216576779170184881142883713851457472924862451439144826473189758575922604241949438447814718461912892674750895605997914737486643128281400695037060670782997173642213681815449367620373877585218727938042205543325925981007548744172973894919051082060671652313879975350257632406399252830799021579916318390071156524086948772808143090542672083916647451897070504215133179969235440740224033181632083839467647626359200304973003484625697669868346622296727205867265571216181638681782816409020881325067187856831668122059612612032389996768470233949928230599021139977096397056445535643563591411976421573199633792501605845215341190450059517347991752996917878467160010901420650032653103891940771571830359058873847207953463305319808160311831553596508080610333296573038036449521856288973902244274292916042178224605250255009039333725900050460494840018146651000785161828472489436297857768721425539068844777762134464562308302369249534008157679382225929871800036316376857168466301828124354825161903994673718368349459909609624066147029630883889757524974199458580384313742567628152645636749506124940703316213112521355271042757934879917920668050182588020528059929001673786083395742966295417610280471938343963827519349186854302763012502555597531667104457422946100730305970803095417296215769102018239087931675877375703675188530755755090045921988574385030647677952979218670786727591052300943823471430532214287591250348236840967536018710334979323497546268206930332343198155130407110759358667916021208124244550550793338744910481587975393787833505513032366997552856100710976296756909187779767217524962643174147968811546665410662319633431588915051772229123052177010169245740755894811208912485379267278548119109910430784283663577036527337685265722986361248217896635580885005911540106193868595937988768921603350391474204050785717521848771504488196973753565200892013014481272151866609061476913840472935619822109410925837545247163837984570584373553070360574134093568828988431543366278070693752234928487188108234649929292195144083827350687772742614195553995001584439641302596985062257987287118467970445527773502023971042790565350453093073196857968651842026296610756573136174445358279690557170383961793656518140646367108644983181217485138528552975562147592889568891093473691073204297800010665155451417980252295066907457180939347579641417753451648205521412006179286354128052826156143074719911316781666023012600020163054463964505458090807396971066280190270832950195195307477018918419320098497998633940599899212076397431209178760346324714714230525847754758233810976446059323618159012813057823321059340457313816810881722850733105021018985479337750943770604517204518128707603675252562903867118920075540223223937903317250854802538673994444151493207484055817090439570009673900358647715800963197910417973996890149957249897600070773965950701515253684241280031988060304309606029974858898671570585309855478141790414970069127160793652970422263541564272366451136637424446197120895535693726033257523321258036336391157945950370188145964101539851131694567225775019469497214673110723386820528964985240104565428039954185936461387542872856358638732765943503223714845789709432665923206037497458908341364129175987256869927584151849286586397728972579865498082581566429479313463842099075615913613671196948451931621850370687920232978704462073279228114394399339930617943432652559085259300207827735673033014679186695801035520622262475395750819310087914438900426985394373091844217398543699609057263065315451759030123871968401434897549998037311037021913065911703591654097864038552582690184252872785312045548250823756790050010594949107895239981654081428358524064005792698502471949204054147917968180955728524301644266916456548884550347684996918663855447756413642792798490268046069022050943637500899731817354891009313041028424186818701338033424769826755665410255236346128350401114467739520902045905672740690161237192947246325963454204169761841372977051141154787761464755246194062344206157980066713185800594921970753194038291861428718193776581472037451183195123339626402362628717491681021396855640358199565497881392839615700075698698419463333568409363730270242787095799479844071372936245763540784659217372567667201261532582735060532829089593127512986789716604361900638820558663199288532304898342180325519238122918637361891932767144224952954782608298332856445054739298737169262375266452788083263766148072798214548212592088524653081948296890166538460498143906540453452028241459968301468067286274573332371655289120166241613015438855281470171921957104327941853184315630312420069709768292014388104935768791668981745014885866935094224606380002034451199684730313956154836564025858339381053378774111065288039396538762703611578025440345914400212185049680405543762058541453655168000122923146841922749197984331875068058553896191740721906753014195682126157739078373356627787424941406442995457945989319954619015844516254196378599332790033173065075519466547576507665243072983036819317804121569631180129735343319605589082298225442609884401635329355822903024313691404922947303175819701782445203282010275122458623903882529578675247361788809022818708521803327863396345963248259457448902406479512145825263898922514031188814804412638915284330506373626564383192850762908711079654459093695862202695522630325153323156826164426925763433445465696553470737830893294682641264331548495816847327799164893594757134215308690288387827707429998431493453201085197780225501519217863110595194516839084310527292220173159295445722161236345071474081223686318697650077559347966533380115635378914408812161578392143428604496986402957173144486614076732764868829088409440849614539867865922872119814997841775978623581759002998322798541039579434909040946139426463146581471079480266512146674752824653152221847438477270197774810333630280383416055177989166470674271488498131804674171503816818452233089659119027535072570669793743930693736172346884845813580453592794875272929016176984449813225682666994029172372221054129220039541588848834552707076132193742590486105627698454015882254802220586018252029687721509046182662220548647002019408908205796310738032762161713670091098601555212364853937001581233442309428164422911896156703235393673260561755529128794381386671061796628572749820867507956639840475562755387447142251145257197267747268667810332691285281074618639750143816918440644807773070874370115802900671162482742859274357889730398059998164747100209784073092434628604836516217322818541090422368296163970465262180772523344911783981597198861829105380432161892515058431458896843616733620034358768304082876496289430458848727280731513082358545572982154628605717584298055753266044730250875249662197688764019121795492044301587719386742632784194150095888559951286723722540430097218769094557316611467580545693205442921008700228923065126754732641963047896362182083258036258668800362734625267050716464538281867854240397381662229131321715121550264066289017197260326290396708224917819691041777606409448414416873365867082050696317329787915205444490882565985667947382392115890028142877715566465467767551473432954852189025599246398923833872087584000495483265720469235811573631191924667700861434914481351093576538621696186852413374086611451956171866875571192045118770559001143168577386324904256191291099967983050190717080772714063163796432493705164507372062782003721621408011464777583081997603437287051228513766360066510880533284367102885790625651404539433305602089545337800623139433903678350145571004715283228966324862801088931793546564313470604837664951350830402002368273591013947996389631072102966818564386114555921265466975596974797629810087011146768632903381214651840530670817095377078700808212496347511069773242575347474134278141190610332279534427815195043134587838889281797899169370510248702729207403768416357919456969312861411379754165779541342950250562778998108777089322891268146636476688455923629582888947277108930116789524606778444144597567724267526756392548788497795634124258593444912617948758292333066943840076911411310017757963023613110845086150457319722871970794660888323580835004303580864897518507577739877694240939111557771573843124976905247390729637634067675863302476767686760957784169959020361476016615077651816623330950382032632111706485176178193969632819089163996413859263217531139583404505484828724398659616350554998422719755089854234594031732906595715623366584952419203547293964433478321678246421580888540817191678720507310077432298439860240814566619860144102626474252721140663783466137172997148312819728572826163869730922417707807534190088387376774469195862524002933196387311867318180951221111306112985305821624459237123474236273985296628363638338452353684273437967687098066850115880862804616094486936705205456492270313723282559244548750112598081913846346974354307226073659301339283127325630659316996027793442089908061621198888436911710585547970220939507208699871700148275185476030529677740596239308762226777944888108264809885137214104470445591689241943743369969925597151948771667649848950235756467008007862196787816260314084146678660586694123718491182130672142518457452412826809105134199155749788298922390447651637661501113403272499883209850604687269482152208669796394586796180692588593324555811374455493685977098905815698836079729785861571045556620346557578670235272336620029551113812476222534337608695168409851487097590838359433803049879735887951639756828452631374204699849237212317049022959433946641266529418304986295683625401610924016581362607671474308642893744357571451459847714069715511227201624863116682930282020069750899526806244758662631476977277919008956572907525568544079233007026213940043332222032178908578295779849513184192225569196706882259173216130329562807066164316462957207662933704632986318320992381922030779932988468504741734925756519391990403946783756179343033555709002893076222116567054796311764440788400788687153695740399782076967385599626263957222963085604389341432860768937224434018177255871679804299526773732209727606322256577271386843396479810472066227254894184733064367236613331530076723459990588616461110813899469299060316587225369518337076259658314204860291279340280174416612705512071424654693746057919746740661443475524732130614613978706688650264944348575607725790118270186385888169811173207053977628991913042563571326760737103477060268476033086839842990847280710932925197972117433684437705394282184065686435992317812084027112708294410912532541372927049615094008972185607133783362457112700985241985491207756499199649678458542240400288822999999823391128291794059286540657368681597625363745212495654059752597671499240431944514203981868613880150906645781306679567383427735557294487336973799133733470612534382826439317501651850636906939814605085012829518841264024485092592004871706449066493263111018903228988414199286485537639122706647634380426278686903506383464602056821091310049944210957823925799327345826911483444711241670442789915727849059360967489976259549159354237562811313115119976931002132380676103213579860601706607933979658203520387728970887808805135861540801573485927508386992467199434591861048110735044398773184130225767393494780307028204483335360013918940944669492413017369282219870592248133401190648590752580074578838141854505774791858679217682444011659362991942764881362604357055569640227060529311341698406236477613336382891546191652996775894070158171014590633904853451916986230064546467767957994004030565781556890662575706478308067417155076327748482522010375928991489803606203048988192994350393734854644412838231439854171377637224807036249273188923239779386096744285499414323092348487017439906550525048310323916356242129714023310950462560817744612953672179015803364455870639110084984991482235959352523904182692974486374240014519176975252487919548335717118026623664777454682409955949886813412369066147864729652152353101829797865398708875701179870879899632883017550087038172771813839346035801039612499742635452692561591342671799977999348941000435733031724359190989512051423832063940115350252546649343028550639150609418216433388153215342673636298610664946310547093196706986745356971876277706295483682014636889367737799369110481545906288499783127764461125790900954305965706312728205539242702000285869575906133409814947064380444308073879038568958868119228450370249698892257902072705724573946365079436255537537806317118846874141005540811430171447882596820277194256505969888472734108756172818827589726239642320269063252703928272346828032567513384700895581312258433668528866930524822601339368004398023400850562229405328235797138933526691575830712953736648613515673099698681562830819876992779785484043831593855852079122778779831460140424118697628930579422414241231333129048677725323779146223181047838973628744827784335609507982303195298180094748854611294413082692366765179644955706672757864300402841589894728371372686365410430450661357227414054692387804152378889578587018231933884806570431152817309823089904880239185770507309173655455784906151460048930715748813841809789205290021789839296967444294662568788254942279308167722557232243673567705587489795870830261398556599556929850876967149733652317870638170456898000876053761388069244102251227216166838647620518441304295438881896372133065176284905488294346556603610545509601245901071422718965714663353608822365363838048166843380390621929480345169119911851255075836509194641137101966913801977677205087689142714580913894332324916035423720554857554283878272894353612661805396834234543127885517666823991768931522930459570024721958550877819233712985631076568733547606163169749475725194671712972480619462878771321460723873508310904475468682923874585813548154816429737167492026494324945751666333726641706397631301663147152138610728738521690216867201831011099698854012455698470257973841476392932096929897854864702506995014223924000754326133149575169772889522216544813073406572587285425164335103349737885567314678522131479384782545223233992465667752325533180045977647324800902806482959891083566516728806472629256642693301692856403579256485228166981298641151601715810463328226876640563012866343276969278128669860406733801449796789845512446235290744675747638651081698520741544720179123291922428725413573354950662504085090881378539689530517803744113330598956479117584796005559734255191417226854411213106557565526216786633322028721741552094654969364938339741066079230544894798968621190144602886378277330238557299070161020615844768527631827873852954426896042376163725829322803982365571327930490960787605399216644465765115047921276623434929988104330730830702977155816918455616935196100429126970109037426009796440993009919928416474162961840093090209016614419996196065272952252851139502987188421032763597196631758766210373912485263678871428170103586609595353284884417757381742485011778036541664562730732749094272141944631541270607586534575977492276321108272149115275151175999544327444754952457245861089846254079291706876595701098937911916909956237453327367993472983373921782984156809665561299220722513862280615863077799529589448489121829077219496246638662343498519098419182583627045255024603830258002115496414903214662699152886747040901061195006691241616233972145339890170426220200892337540669525890059236002564856752042295755955540521556550965330420420656542314530795782332128059661070405983366474630747042913867005881448317536046392865241112933056726392613973289774473922050038203616059444620913156761750498900104484842885505036571080247194463584579949370194421173036230763627218687393281844715645502316695059947385217921156071450649694885808691825119762350295717977438572566796748096898661107547614902348504586024509347556818618447814160096379086545225681464036757953809807605700588466338768129055576365733761125085515526838293873005440566115564790113533065488211793070295037660595754171596860845298855926592347350769627226665539580080122751573500234499944182120906112038734782890906750499174397201753246178354790664964981988542414169790024793845756998609928417864916900999755143146309888797780271806664851929550874652002042565305856294182798838870832042625533433126386198623740830830579650850198327618244543352548119895730657985623782316767633872672195529735647533684455391823466806277696377249431376004477437916470552783344483718125713015618074384721193995689451870407738404968709623818149788727360758470016818495442482961752558564770899483504602956373913966552540046213619729800562811386057484667119100616129122630211304693132571496398713641670121321001519544450506793710717669215660860752598354558390818249270166876169340497696921622673361657973871584478524358156698620343375359447909160527032875835945807767974724777683529329946893550296999834286703101083860980989271595280319056714048480260723588435888164428695308924131145714275989451105121211776093266200639304427570372822175194829815560182762850381186048552987745706585017108306384494968933648276090734539190273432575696706408823840703529417552127515992365341526644206332551332915914714943178272578682664817167747897240959458383968883699065228623527521432635579719157471549775928246456703034053275155503235994809623599514670149334901826183912393210129862794700029220830029713995556318147749957431993962396792260793370946354235332358019070723993190460122053796344093930483517079686192528704722565887657450349437031939374344977821421379742408403728186348904563582158980565829320608668536443796583387048243975436004631798393363090694467654595509373355480088762374535230248731031337843195347084998341016612433289705411893077869484936247009905920181902733085387689149852523894219316304456923470067775076845851628947096661074428453667108150315102031857536703952394656669310578398084921503519174633895881678283320906333600773839211061001215774816284198327101395776340977400626178423557899268509013858751293813742532836794787577815419241424713303997563381229440310140568529416793570398762605144144647476085512118562404165293825800403042349380402831506124674802315124987387426227007184172613400824499318198355559623101562318855085676719294375339342799467602614171646775154545597197329052090175780685845443982411652718289549362842283223854339971221166375664580553698098856140479115833792494265042188819719697228884063690551078542806851714619043778371140556897709261701888996917165826390963322868074476605784192406484434513338934635200999439925996461718378701329546164489107626867144779653051128735140415257677007935238001677807651502166831594628676240576256568585533768196152346521535359346953497912828273779260561130740786916928217774739071689338822032387358547652999494525192995182364082636587570303060412154155348728598617671716949789474641469434362033201791616152752745363942851315059616821404167453881590648537189686444718510351721450964187719648193616403393045863141078644736913898957961663193528528063937008293309044042253057106292908758978895182074020842998237677489240828444072317371459754842517874214433796144410574720640903851840415687337045844530428418692057161292592908212430155482951793479959417446560034183450652569787690165459126595618020625812218346327831521207253973910900828364110446267006902934036366822279411532117776930365077767335768129337888588033441369132226939850495586653408707899951961657285212108186130497619319360384832375031805240431290800630505832448510210715450365586095141676818761485718840834784251173292594801504767739857622191500017038457584128940119854268634031903119970595819417794901092464011838989462591973948892896715171795746527000019016030274148426846571052286488392593085405230659486272328980776052015867136947907390264226617974233760863523375441341979788766883180029171579981111310204050077122199743337626417243137155881550757249635513903533277426140108450146781018945623331066951741510466812559390111262164107900468946483816078550886770437422865763092009069602971385511107820512314456334819229479573646340082222040049557863153135558412779863463743404693822265221674474283750622220985617895792091969167472029341210830585031691350224594886143448292421131610975859578423088544125241849212914529460676995734779262980320453398583229045285752465849768700127859834187385215870467780314623024206049653735898782852971459219807479910507107330788179476517900454432861093054799158098215993687104982731582126662834063283253877314759720180681357067554829932241805986695501860300648859978240875084624584351854834524876780721386765022093786188023497150867979275489342201842957627732710838544311754423458193424905868388115482621140334804821929139839084411647775244903600107398708101551503028724757756294525045365220973137416445484384206375477363890335912006592808205166338026280772848771011731623646838141727985691081493881685070754909416156686312346445726613215048908733862369685819250908321844619771496105105392582196039752659936865842702241736833464756917303664689171982564726578524832645367515574155056440683080055379940166694813098137617464831502610466067565810812299058727384544630799860646636013669135073580175443095616372957779806958060020230455649858912858862042378933307525270168790879387357025880395092383909947618919749625881316321057617932348827244447396725510154206033611077713901350921807146028568872816247797413565029996476041218865371142107210047045636878366779815929834889849457426087131933687534895658239892698909148356163629346498013979823271890822363403839592489606721897205716837812941426110281386456109719462478190600108182376995242432687228585699103658145391512341417076918992117788162334938061578647717332032792548859895701372740013587444510158983872070425217573115822922824949025084753585071759395992202244267333551121686265332583453313242796248944241563132024326005709611814992042827628124894110993415135863795951656084601991219761118850612849903113252899751317338272276861190791940670917507535408704822151727448250111995428044683772610560262098207857568881978978847797282790609562776351320869914539961421881982514095885123512251671562935587487272710476687124904204338830035144633090329207637243524599899537289955958783337401680624313115759787046767670753924921063547623012397704010231002316638698951884071511779923836099143705944856193479762180752119877784155637692736500148046231515273672915096715391048685610801037154729348573063300231673351148746690994490008116170187342258096857967700986991570913332473203552292672724598708192819245748500693023343229255874707144148049245294540514956141916370727676890215844912071539123151107506042870007017138346225129628235893578126448146304785273164028122738315118187402871411717465424139088867512656831080781859718582306326212065866923142046425997226184052854786934432701620894391402348672989429612463947422068255972213364471936668373376948240552864947948808721173422507795821585860292727022817136758991708556571569549366493956225777358542143364024155638750746995465290882417705920105258843023304255700461183534897846153143201748730497915110715533550638605881753335923366856652373560750911899753578815625185875222011462486845113059620070402953544220271477614800200044356247409635018513848315318321118388516182215366678563294000648761900756849571540070537909754900747303480593298935429199267754493524705268383949605323239747647383610883028285504114833675866727583022821133304375623006834849593043159869164175460146873958633104292499621415111581964225281323054926350926163096848486306334472971546736322428251259328099767292963772485066035072670106278553380429370026013946706299232652632454775233457299178175854456026631731130543209381015608887527623787870210531348035100574168390834564070552574659340495798123632317563705896176394922483714540122840145282815955508761947672799867400174740876480152783808225461106168350832620255814671858659548482892233377018219947916655164079655213657825175710281126048035092509256404946462025868381279041098045315510768423489431634427604468115525697424757045788854683139529996674049893259168245373172829248618137285934114731639345626562189153003347490217975643382675489786932684750947295880938425616558487812212414292409194189695314524204255665186601006722582232859947863995295642454272003386723438077131665171453495860884455192957084931650162967201818192940738338620327191704094167404766567273828036271691572921343306615706989067536037981956520459847056171523803728805392246398023993368778011315435763123394273937747071705552683252583847887752209412706589027286647812554452949992727159188635626558907559243448388586078892789488028729014970923120564686991451328848639424885890486592741234997069348118596536345454357974104819717656369682390098251603810869034597236128271095401763378461391900357233989138244950528493635995434611936074241044747357781770032438121722099958774001144601151606568708381703429494935293847668216455853098853931834997606791081906500057197432214760671275208271735198047081336352541278443066320113141316266221391639699014583571761859989747693053866418142648887444657994296799601485254941660179740981044349303266170239900384196546129189790815527914568374188800469352715106666940466593068746084740908947281443303011334193006856590652129937179769780686381068988321223774447808834653134123406208464624646087975338470322930529714823929720387445593832848216039825298527798361222595989158558640831551127151465961127447095145368098459034194767362883419718686073449203568174568734240717737301136904803041300379153158277206342566959206431963568287824343069097534398651207587085768287518294839702440707421457200563567047136193522143616762610199793213757162963506346744680278069011270178182105026626980236425495271755914048566197913532722534615729658790887678120545940543423768084586316226687288916088326943821236859373831966638313115252261382333265351280886848247686238371935251848220264744802258736481113514061387616221828041973580537101795526397035927285696045792203945767895457667393605614075835528596566233663111088864863587801734393648087197282831179042389183469898865311609222718539615814995986897764257661458072338301680812689750084759472613810782495825327996069516178673588838943818219013581616556278878055214265329088234497135734556926649516055199750642353295738886688743819039127550691357464436712904114830723895248456357310476271046072674665535925612324215647626953694322081736947236748313059342619216283390446713365440808505972414732266171718730039152098614270163359066636907455958057251846202872141181751794044882545587583831702654773284009209360702157522911937290336521865419374550850231796403281828353984913753162686221120316662999594021865184748047483058065520077287691489112593484769411586001028695620549347434258891842660190445390838048012676968381370851646003607239265302433876488955528707130339898024069384404529086217477716868174619106179148401467461731679791261537196242637134234583607364688937894308497747474460992583932574849287008058708685543755350049039179342094984388359214073812845101233690027860713948281053451109989045397142154723714606394013860110521200700011251000704871893216537843146978060007176805452453831673637883128301192730854187253772226054706920926090079963200125385517236238626612494677542123952635726056825378949445369466772793991408731707008055305888179946683783178462956656382677611398521867276696957135818936509363553938942920121896205057794235776663531127571613188553925451366825651468770007936748837134744082145244408348289804532638572236250886649582581737297058220787407360864885869823629045740282482949099153307130277571636971522507680478860921916931239305134014308080465172175732903851373064735917098949373030195950344353141987479211759608264318036797946688964511201757197617452447715826323839824832142533400847584457084297823846957399816087450849897699096285061345013269440644612693900112412065706285272714034745720070856371335741281029831959561173740422398141507541777284327780842727883331413845828120330513911453574065033671728982286701925106606132217492065803664439654298703560163844808896932027018170925852054950070511002304596790835001383518158261147405326037824846723397503195394335185115148988113804250538192625100967123367488737293284173712915447137092493645501286127602766730483558893938046235726879580977215370489759647834617552306035771187802187244420537535588569515408065907320864581470189288991005243231159269483480797544713699628821972046589647526915361899578850318699320481277062479263338322444175422990448112086720543622017354902590628371036609703635923708774766395200132484413626572621649345571914845325590390913590606430870433043050479415009685715502085698770678025453125383254958656630751943055541868483931826207230429272804602050220037039664709775774052808282924097997928655726087064245050572244135759358770902482002595112403202365433023927553856905626174720222866397071041296287053378728376738768446363863462295304306340803070404913781466857764099530576591687368234736857624954304993360309488692883061380240024867385266832452780833849481534387784818887129984423210826287812882912686992026901365491444619754929006953387052426016915093430991089581230266602976968911950934189776966997901914546892915129776797063565427538713945336292127374416908691019978225991404330618323841050636307686819317566758440864139065482902492678270846993294673414263623660975540366144090174872938259442846857146400525460682108958841198578836244690166112448903794641936358134709820883828430891602279314725521832606997638909268523979568482137286407080849383957116567738009888550145788613078710583267629890663555576385415034985775344425935578969154282815860346550375177014623045669657467792289787414784410679627698937243725902785041709163859174811664278001687713291222351605603300994418999743709529056662664556277922589779389713077218397379425591919477756664787378475649434426812412210448035584145045800215204667251714961684638643649260843024779165957922388349007847788438917705323493847330343579512059434341074750399380846538997435485928832572120050592005033705403362879688820776392126660928509994962970980850752229724781292519611166621276320671101306903301149782169501021102572007142736971031007894906188736591741041276179907156066752226647169913108311821299538435120657907714139808478566325105787161667836791009794501831424987829224357132965491567706896511904559156559645172256465693193760759124847882300135295750342856582977491155229206256320896094592868375460720814232108127556378426855390786090240369025306792732361218845597783319336956392722231033351078069440250046765367967491539633024487271202493667762319604297591824119358535246197776214500116140666476381201521095687467183381880329984557523325513200845901547231808256979380001591536350466144277968154741397668349104340108059352714802514216406456652021969012346959164104434476880542072308240490143125732085350410090444411657145893224201031549598313114951980943867107165703168642738248678012246766030863906462603880627683322796205661463769367214659732810369753091926654958387760113029705393900575214974091724733470446571051690661451108635761033311974339717298534578847036307417197009365066087946162358240818632497710962390702567623250646674966598279149448323424501897729997916715069628082121520092118397959365022924164118193178258051497809973846017309812562611159569299392012207677355396612259000874579992671731932926358881999478834652241298235459284149027269538114639528681332868604815539797639271919111800734690334295888141476632380244596175030314051857975137520393126200403029100787373991745038462010248244975659518034518402646687667134724518917581630703784869545519155757443632302269092945293102811913704869843410347522884096047265915821458900113859221959365582817773788598136688391374989463999861585232166827058750290075745738325601285945831728559955286025345239726882381498924345234043188720781979224776878562390889328759343575037266805113757212457390382213637755970955299540406085388530231156351179848409553902139492673359007985309514450420208946719958583279961018045718574643545752391524503955838517066333765750272785846455921863159679184033410383526633526773835414088426402112303266031134873103053938099996693806621690008390149837019366990380569741544943371792102154718389814480211010518245105214122300826668137760537526349823738888014837572251040855563864403624834507967418742416622778222735217417467830820424237369589902110066551928996073532102125863320609788497289252682880584315373703992084164237902501996712119038385267954514597037368635225078191454952573308420282642391895813969870168514850681155171184811340018892002385606404967530126465822394527569891686293053977472737413741084868184965731087148324102689013925791307721591330209812557331360843708416828696114143065146503315118823673855857304226575636390017641017656775858321690194115018770151322807664249922070012463824180519559188826824800252919724321312631877850122552758320688066118894192508960947202952130779359635706131269395834786550537477068698000796270493789689521550554440074527961605910611076503397862168869537857041626294244145193491881065322480470550207684288254910704783110335733698495059748103232757156138544808744214503903528796586398875329036544078911443729702296336361840069606951609872017770382258601276735765856585302605313937663274443123480829059185740286212294779724450893837589845938691112664546293872794873567902105133162734726848097737611434793322583904421673041154879334956927300781039564722848718735725686758249163123299349646648467063640256479667831352944379634871035334155066273383823484577240657302125008158690956251141347895279376230921103931147598979163889848610616598425609864077517528574961939346613511835740490348126893554692471267829550355201423957727526114467097061894984081579866692107194150584700067641060716974445976672262466657054191229446948276789959730344496379622543420093704769107669142524275200576374743710007977627303370631090021334368685097151615150490999109003996993150563613420073406967370970101000278822319420993739354055986288626380968940788423396524506375491039857044950430663870917058366008390330733231715767807527667782948707608158117132177402951196083506370492563854776404401428309869600529646521384380195860655320536205294603789244782079824462802876233556887034667304256562607351596498006326865126579700994748841539776792671791292177135881325865313186774486111502277002783285274531053171585034222249062303158489009784022942226943099540130641825162985766220591684959999828866198361963705078137270319794308623381074542087036952405306361368985426256718778554028583586601990635102314082654122671394496042987559326860888399827328365539844683535007401774947999372338572494894915402512068456627559478905504176932794711084153652465491284466371788982909442738180162164216386892199364833126627493940203379285766918484640422354667526993022493986578115684134396685487886080559559969158377498963742579773039088048246535760012692324284633855868766301051237334656895639847359309216877654813974458473570628020214105277691799429780027655285285449075095444925793089852670317498679263754498695239045213674047050240614421869516293435510974046117966305832773338782845192758711176000602517068467633132286363468341995187156313519734410774989358621182161346197769350779484253256820161861457764109786526335893886981232133042157886784630550264922159480010436158789933370043734417751244023005844234647955485139116528699362386775910856612414417570940153151078301219224892367668805229488621825493498561045134793272183966143924889095863939565944702247210316466861373196685914596867351202116458326617962209405902805049165331234626305698414916300882234230439133315717657683888071228569191174237755719983382606294768564189545043015401867607588891533256231068293847056862417116170767652465483610932241742842301770330344741974066984202104192526960176892024646823164592652632136440251191607653686777566141521606491343134009308937220660461921736871697852877021989727481843337231727093312620101130434510773509556450648056967487295829051729780955393773804856095573185699183075375778625257561419246831507526975275188649946067055268705612440801046243900952563815373754873805911955448734682366733941019252199607197377970503460774602057505844235263337780251305253929955676265636175642652287050046422118596825584082818159104318435871003621006867651299525033393984271341849845430894285993469894584469712945879460309686002378236776115248963901583658311270808514705081155277630403812597312468607821131441867654179545624296275989033475626933740037405330368098193594835516201582678831191256612269688854497306702847152759215402410161261675505025114385149386855957548595858757544088454915520262530823239981757710600926804723464690990777362446386592866941156419800456352591430202901772474313032679147759050594486958592185044864287366337014322503058235831519814030555027557049098938318032340998915798160349346737319636432290291781153372414085561907030645361878420571818668460564161680157629658169075260174752609991112986010990161730979733951857918949344789929629296948794432595585193289439229837346653311137837567704197624757602949749922764430180543534124880194645089987524196529674339928894032614164585073311460070717103363441033134061263560400954878083166895366966253047462057089678105852605021220438350033463350237719935537611577846356059733473347963040117125270600793181881616835182397090460214838644557715471621985606356532764744995478650118676534613837479990921600771207662339207207946210996168341988332059647861028489868175989903523982878422531574780253421489187727969105093291500592916149159279816699483061043755219081080832988991658514275377950155633174544107449388203721381168152134416653391752301564249458156309827738611520640588530647962042347433283205513756868037941173367885543934704952079339418637088369216221396265677130464241673631013142575139690446323517182210133374571761422122834243255435140236241223931358886075733645887640329692225400158484500112762302360326151391283444207254552948986865204705998088775206360581643019304127962941331326305636986490368818478483939496721534907041039349185638033416180137398544765651895464394928617170951629190275588043436017124793022021024443656974762695470620806313755712447504609994514763562947778970438598388976026284653939053874494631052589103189648751762413455512589194077272465597068246460599291180947537366115459707755886837169122737583599629115798418530695952321319303911011193690644476839732339099235294223717209031345885577857525889367066869981712623964847597056123543967302087625743829490658945565397480479148486068368642405441946139673775978739534692345245305373897806201937422976677076987571310728760878390547267167443114629675263527320407840759738400650297744113556253843635666425529965273844517998490735676340753728875706333148524931398976568233247877459592522258147269159616107906046635894110699521125422020279492135519079813246624761834800722051365347475805635906780975328607056826924986111425503788890973667950903744392686676876571912737074784463112817067446503666903607570613678374423870925382978618944580193997284825150004735121125190665331797951804953394355146258134404185249003920964798299830367261565647554200532700532530279853230555340316651955426087656157577820152279811594814737083626336445156387321326221682047683718321396093167093265319550678432337358052021788128700153916681585998600738908148133335522580011148793967716633731773614159987635713071183422514495773725718655352300000153238458147673635907098834603786917818324584901446813873819248173544976261588622629180033907048685318244680930204316334956875637266279293557989115515010290329171733332532760160594986585669477772084993836099874780530609309627877741697394165644625636272520599549217771895750362459372824299638896869546132594007585267144012864860508268009860099390223400839247389652242476058123237211227974512195977961365202111371755993420386398768526304280549133292931704422295743218283145483682615526969317601514970008634519899033223037523603211618203449299958464930182169488339509253738515373765184227260719880011235188362329127466980111250466866993809485719079018628524541909784212727289927500874816192078053488539235208262202635123100807332292464461513566791614040083557366406569611718110863553066350493760252545095253418455569220163225002873808674648223369538190482239845811906904921664138904923825810096809798372089632878844380682315090065665640328666550676887447602634333627646742558266214274881671478657813974262103631046741659919224665902232630011565931449819723456870010354296156472355860798808381052637427122707933566076952452122377492124445835304257056939292887421169049806860366510507823741542517876930547515597643803218719670995825721722379370300456880322742418325344976663573762352379169829223128981117237496905778138283612569721807014245122061989159935915934714547905472217943312648353858345336325821349487396342820334561238345181511000210327709364083935650175385287725512479072265913392160855834610627006731041081014658936612536202689033939671453142952936129359663555724182574182896112061770359036866226178037093781700228493067320540572578690318327344385744868856454716457718447077079401159733637823295947210591157114440992609738653085657624542362196361867145685495099132167724424337568079770169162727399206337354698274649471649446533466559584293587735225922104534868621378604947682810499786861251241980944490386572826716135684678482708939232761753537790988359450776971868018859865452345158609275287924933886891447550031499284799142875911323952520056095585994482256529913511908238405362240173194441101516905130004501724775062347936777655722747244954497776758925195997499729797208225988717560831178658525423121878325351604253308980607052863704992404414844768426101955644334193166746277007137703212333066472592488565911726075742971987196860787337754658772782465142499146349653409926602067436380683875914012938634065857619644721064883491404115173287788669535940968148844938667346235832269713130997982019207268847295856097240715634306212836063314342549462831571505510138879683105218843490098223160356563758427786535131124832015730831614082132506323468551218588534220814451757091379700396237129642401876560591826257399707312393265378979690864112877369710596459562532687158644171856725898791780545809735545402161866301672871010411667729647951332149955570622107125550848636572615459652637171263576193131127927384442956810909449184194793278818458749089336015660034527137524358062353410538645596868524905101704200044304781097459924760846937937532479939236159792320161200437555327726998967166235394777955427599772123102261343366975464277140826735076382357040326650935735325738696247952888174392810931554543686736678916843444994111631510194403108101132499822843286584756732986388891457455025191946654966674784248046212867231259833497955927908028588494104356594363173177656152630349465392028484266171945821063315253968588675076182727588722587524183867670816006535256261381117542820369575432322173982019069167127832346724997806140735447633609777483920162445709536985204671464840313126997265332402614305974865931669017971436926926793004098422982079203211667475470832267491667873717547220487277829030153542192628290955839472858500687241642086562086217040804091498824233204214003012043898549812702096603233101933953252380870715106001270552626920043403706000940353215766838510777008456315723781875105659135421146938474373212268115745060821011376015286961042958950891475015038928843665787526122271969565995996030461497720755988360648270788507487492073228519178746437505918434805847421907621362401779397556556929176531646219253009490673908103046973246793901976239000024556548399847834551952829458611425319697199068414908076602877140332345296026261085573246814743830912846589057363465266836334355517258670631039202491075928803804538722044515558023641742124922462402827193348731827093730740908702726219353111874386422256527404636645471877945632888630085671689810843037410825059672041381887385843196244089346902765351256337833573275873414481352741163903177463845147098698457239906993053204713911943232126640191076119628397960184351266833860207603039024345508488495730332067255195896919109026700159328767093976432188333875514485755070404381298452529753658734835852926995268063574314816031130874201843661718378118553443895248510728686005459556024259566472028487755915074827036210476382388874801961017678415296609742556761642738619940313704123553965765705924223490218832152576499947170998969881358032229293201185535045272932840965895528595154983690464277877217666930686775734657362270607111836840219901287129559264873659846451416869000921029598720222679099374187819162660487707086903655053592327454401482958518958252725451540478332573957714928714341491221500582278708501352022394963989861390878034639028600256974304681491414273136542860038348985130361647337419254341947428370337732987043380696733415458606992317612312607451764735354867081790887719079345418202564554669919380852703555692034363280048887781678671492808738875650218384119403388660031246207732260963687839754461881579414680767758389957858367193536027485788482940236989207687329346040575525470252804785966707026963675045540334463624230837604930868187125840458403807734964785340071531403995084886527315189232160834984576031400385337450253672461730597004600515501205478378540532630665646572580212387396200974087268504035710146413529194762857161548707791036236076525317192239554539158706308701304501679782520306054612115442405004691422115940149581378307483513463135461806237737429305688994720227597611983848385973708381192205908469271426467708112199771646625649011188315528881298443626259136508926013840886251902901140218490506397014080910212007228906068132022379941302673533926828608862980430599074435909643418961632471207047879228648502730381337430924647384399515878954024805296993197429956226639420871182878282817367172045980436924798416537949498075624219889792937292085703239237912263060965421604905954205289316780240296424063852509234661081755097843772951427262742966858506062638657106611071140447460653634646351429103017752649816789581538829741585418994082622455402048103302897975935892544765974433783193736893656547694366918082755085715429663037088183811809992370033402100649824289487351702708129495487218537085266611265322074695835738478563983711937912727934825907145303633433262544702274292617495191277837737860205536012163106954342461222987146197165355613778780583322511374140821684410673061110451026936289187497782228020546714749698130437479042787405552970761872922496447799825873732337906122471584130676766289380714404187171017778012502454987595943732937953765783035911773135642165114236927796842654307075387303805209946389389643508799201473294004047460850877476701347429747358505963121812686643708672883995654636835695684972219156112339281057075620356515053801492355960268870014478190866237893659902086436909379224230878759215081308849295896478521145796341333003844997069993450353633160451330410124627790644193321186137195766873013031188685132575515928798103582236108075495651322032029342048382233093786697480610020770503365164074591977641767579600576906991194320723162302917849696625465121061461435287380496287165636146710849945076763168620810087853315263610971952454494392636306919140993702163785426133237070333426797022742459664842818201482604581490917664404829270113637875849642414741798386262083670630136040879743317234083682296566221090059602332511005486745911245096831629187839375082095825367619148003749414619297638803365431262290276437520520648563100596713015422094793455230827744244175748800643352669014420947269380350008364066915543831905258942468967543641516639025216029967021028149074006044918545600060496063666867223568844059326295926773589338468153306995558906522653476035835627812714467823242280057127573228991556355895697229503018816961163633144143121734086683830039533498601671851239805276526656946600960249545768413045979530240969186848615619292416321601504911125499054757102000205269570397195285131286163510672497489712994430725360631466549003805949436036045348869522389979772517651089320309880691853242728318140088361814493158235817993380533159768496566602375768825440302409806541156764615383861935846746242867809761376148912152749819907055337160769351107474787193027778217184318708716096809646980167668399936725230326996523395634025528534991760975438632780612649117754331465809192074815058096489726706504634344196995258739043152184482383296355805287473837166705470580813257577682855310334195032332588475469256905342320289309231960169611204534395684154578432261478991845114728885001542468359731949974912938291725721300946641213476714465297575983400611267672331595990805857948795223790732935656745708170763490486825119697428291446194905713083436798405379346437438417320868655359852459547240112246001247295905339299517771750837546921007188796997805614947771617463419162733469577313496470361814033475100878061865155802754772024084789730877996198969224799995860107701206552718097690528792189938552205641556348410198533471802126283448892422293350567379120015781618653674660991790912745012746212609400736074601831935734353177546182171635000741895585771381039638121259936338386279332758415830148972201514648309475921913225367611036391282944640032091341273423223730289752884150418424821240818683149716368639896943108906515296807078306378025879411471006739981894660183405568124673107440230613712157671790271737949005143538707554342885779386307860216209281012321713298802665351093807702427124368154505761916001354469572836216209147290473111056313687977006685342330957228702609539253575153803458070475655095228999023562763998988426947017745301467592851316547295144951826976664050023761628213415013648662319038738994807288780353815797431554598005589139449180599086026547006162516939978652116173881047403518334024129914772415207380034285528299344795292876770398003263365681981751729289728411433752713230914221666720602022945024954281940664305629389415234295171442533305326475963066195687259844640800143074139002502621684404500654062290017347002065366750131728989971261228463366506595141029745358150573608028039599545961352390232882590544834305542616535499301071333191632343003236421184465502645942600048178256444422515412601140209267213584408741390910565316120556853669305630211607160062428504184432239160175505276767203789346061278058884143632350889002725896098526197475796887664505628278255873235462484453249573636315273819886074316251752871834441926073774117191215262840098349222439373848665131450851195959176974471598907427856171702986827005950583715982527770906590486078559109633695854193927906030669621339039748447467011137579177972999779738210251360403473933629630679681157422353082497956580408730215213122696136733203119489239724096188501887384688402053752479843476110290559431099062418710884154446955700425596981306304930211152828196873435206924735250366143637117995465829373084983117704184293798464052849935826429837437719265940090772169353738961017648278643926618422282511383896774240208503325830240314140148259983324980301991225968532977556171743396992137092125891557446836509866546984315711562394392201989871078567766496243465874846837038944626142846694607449836695691438245974615427901547061590937511945596709735991906717474490176696278872039001142697052126932689784020975194677929769969108728965241325826685175707988773199044153854500147398248430576783898779215679876564565954467654342674792854790346073386801183634810254338285338210367419795777750707211587344157207301746932470097967512275848845833395953559533201030568624799702727440630281494442477231697565925677573592386580800138029465018053050109328082173797263616861415632106355212291947368296756335643677351237862894723412104175080160749999550379955449795636924773250715345991964400233253992896377868649382929501278773381628332337841229103358138709415117974245002035630101033887300164305193707387274297670556984306078877518028114397221126281692411758183732589544765181246657892774863171201353715549191065766126657563551770842338121894879532340045115040473249311405118261069670564467562637048536228975873987668546224278897106748454835686703057101674390856071449830782414907689330483517202389053091267690632015110430475658681139004458435764960794039990451854997423680456266183644129570888321910357275623660568817311669417828398752036788131591344853597093172394489627425930642592217549319112500952532459838110440941025661990353536926689978907743278190178686148888731471020472623327877696350536036228353822407003393687130586271700579563088465095895782354774400890824663781858797331259889479211718202197899347307661695741731415351950298818216679542924324241804480044043491281540036878936256454312853246671902498125751839662575271685995008114756032526923977022567525388680111475791931047869888895049723607006929800274821510254538199204547848843738399121835025670641303037559306099016120687257658226412357864290353473949279357737782777732564292696372932462443122177534193770020148546344048372241707037067987793118514081763882939133186018342231722023228745161124173488736283619594493715269869827573210325182588819615941928686518549283924467590935320365256062744398432811069048014813906506286891069871765036541638534776115805356369974627981382108489285000656163448682281093114868799015390767289207854577136864392971974714331521726397810836556740693769206922891932315411395843573158952643632312806559928113118941282195807622186727834592509754844355840408323721178662280525317955141179832211643093019320122474497436890059644961715338720291659050746395693741116888214982118262589175669557203558403743588366759698554302139255604965927826824664987035054755911672692016735167962342223372675967224161220134973903372776036732025764384882628002603550640189136893255267233992931308710960362226007024748899481846099316180395977407269481806197348436947141372854165975720643261442157897406466264351107017959699276727521955850271828967845108579061948834015954684466756495108600274992879838316987651906068212182184469764948221277148971675579854659747046130215726331384532530364093116072643880566457391340194283342431865024164022407532114968974415042533229164466912479831408008374864991202603758479701272842687820370630147293676540365683128712718420219109439090749836505200474081685377596346336746697512386148005349860844105633307016509170259073924075335328780512026390637327438736111092244752271214752793253307623198626590007634195253372476268738436532591613184395845778559790830756605725836545707954123994096535848334755847857510648849372817010452676932000549183798322598662278776346125178599525353094882860425916565300420611948849424830586595335958668800799146541429791642735067397605560434141364224913618808106047692252383670019046278792133325774766998011163614214800140451784084633699988933331514239377886469275292160066185386048599757369644482830780359993249391956510669117696000223879447242686324134155852777269181333012617222509789224046740872055581213646455432801772861740907926502733092991993543948796859324975557021804079629613139504112501038200973209189593260974848492507291243716997011883471365241527670790714124099716191558909098291705623703416733932469459733522174194047109575566245096518650484875943251797223685897275488890681608465930579403719978050444918689887248397039727553560043579766141327849308989597476357740181664085749013592625786712216267348348736350798561857155895084278645550934901038998771524118448708896655803885741558783886392018591590226816450151941225239391029377258982693350401661069538776966564325215633932540079551794159962484066683987066130122290273647565183127838104596308087445715686043158713669485067424699298783186127335447907564897867941692568547674807623548648380119739215544514005674215151469213482532654867609132563440253686147666859028669233258627320302640278719841984997863748549492551537093987530285280337936513707287315186582635153154321966677402344719449660965779939150874261111940198981021961448768859817233510712783294180972742734075825926879056382118841658161549632341566943754791842731830132112182617450900458322598353354488698927299057909374989150432911465072452492798703998948799740974945055599513212856372637880458015306991064409849436814156844887861974077333710267866517420741298008997985130585713049289564668840796025041444383149093094043365958289212473866330563643755672043549351617415097567184435810830851282903210865461057451183669736617558021463957173989764032139333737839866250612120418256749507091539263780126625819058271108688715805252772598575226163736628555721748943109396737599851644627603069314806241310729172050531292132337035498538261826484429412744601529768178280471077636752850126123486723570202199620875443205044022432676589221467583319664296841179261966734277128698817612510199765384697275903752831952979978607812519973401918856005345315221613054236642730816105767720946933433751378234000914524241529907408553657379160787621407109758832851316611218076720655963447219678357937210863238683897114239528572193586231044974341537163601042531154634769220814035725437073457703293809767115297649403895465886184920063042304899082625940629041533096055253101756076548625098699137266389214088745213098321653449775434432757791500125801845868372807201666567353209689304326017159645923741737577160374775395443310433655543020046798466521201717138164275253359338518663583136955185849924562840953739773800826041437085104214467840218860078498797466129270128976938426721465906961924015152623379807467036990488525936838251680286931107181395060456499919508235753201325771254131794714739963667022858275942453709061760057274707513493505961759247607502930127686202988304413090100731393722593613178504120201327113543518802222483948760492413897969277463263402304579418997134493434288935998926032497464690528841140659497985549321560917338491272398445516709520872980928288033932569109049401404223241155109341245112710344806875477880923674294882407282965193142916264778276442918723162980695046522579266400855158964037998692058427063326952546037804527371555655893983898022183287651032711644691086867596591158654496587906906861915913400616362247430450871703418248929820055540548577443865429083672251522322464306323946196111972468326620467782865654558438564883658615032394412008314665819304900019179643049804513081483350598107709112719215665478158346023220899783145405382368515831827425541468061382833081606858089875785591731348904090076636802579311551766700942756411914135390942996239009394068167310377942403691533995882838660770221838354947841442425776664124296334523070543931699694092323050494755321657012982524354142684708940297304882412084850251321287330458783979309324514082084177143778906656017341982650958413290133487255772236657890765123539139757592334134174769743545580163409140755267502705615471078081698588731593008611813329255174293337508699207380951992718385704051026834711170550889079872075972047999046086563188388197261415268334217598086429431355983004003885052517058324591113186908819484945422602838264223347175023653289202246092090686752446651298011389169421183057877278776502728702041149685440388959693744024538090343639039265583372964843835902016715971954692552331449227739583249366685653583125433036847791998512235851713692848836420579749286241808332006208031064579122501783324022382205577338579962901970266483053640706865417353336277817887485762945295459565065566108254070078176755143756008472456662273471101343539677008939169498371219044104120313766634170666210116997788338705649461630684715376959123040656267371164970777086918940648674067359250399958318779193072052184165037311872283677787592842515219469555199725608635023660123875186870115235413992928928987534806082469644675112756357692672247141829498600553080344849053929779307978755500074482870603471379262666653374982398022703486240291832145000619542380070901427881010188796224563108362259018089624191513079363807254086360542154835007289438039893010821420946045296890585038246236734110623734710956179975593215215566101064240786239938058281073530114746539334885066797717570598538322565187645221993578263698530686951615246182051152181919074079160294674007679594728418178398396905386881577465177521890504285171072360917415715755922586151197544164958400879158878373900945804933314555956628584434318766422591601632627285086064406637588619313312254390262075696770800844077420451478096856133654990647110183477845406150298810343283309291091231721198029882996659286564241531162189317095157726211579238383003220714631913961097828693967604237501874650428591108710300517157601388312336706447489348752471110903721201656149776379858076815408774361863743951894153340092552058823555253833721961640718270899856506654515490054666480542459170089593546956530684099398439922609090837366946578973250413494053433519218368051374172075355456132742118066173493279133325288808971935711785979692274425524013326044636496959804725092238697896550443868603842537125730024704169253344473437473624044909744753110075741276808208564901545503366851285583692435015595326446071420956735900727352926835659510878551853282847494449373432806516017002534758331506323186312698055019007618528821049689889627772433572208264019213543760693006565712736254872824358925406983707662379547327355187859149893021333091083511867164127428822389509001857160016607171674739034007971055985793357102215366814977469771446416979276100636072867520177076636125074172772173458449864839175148977659593006539094513047326920335217417241619942719498382879027034043265947277471772077277908818838818782057070615927380169458664012626044468327839456545722666395431068171368079627831463475101522391656731309587525443891174257073712362243133776233953532870024077175168896244312424028855190633589069715512702492372813746708101526407783969224541409452157534500992309766404320558759273548745075862468498888968598038602116191463988069924717325859519329585751910565670524611264951094176023312185876315820743342498929965330619446316931503360816530006003308987936820008829721904156048842554961129368032507227001686566214338908840860296806934337290969359256750576400920610594707698794698826987068953297351016566948085703770015447692146267513523971800939586935302874442660205317443075142182313262832787054186657196955616325887131786239835905520446368765699498385142593394382916505967068536668910419224462027805251415887610967233152442645952392264204119293245294772319367671757876569093088821240954892883992647785528103077453503739637119230513334417491750632155183405760466232495159700451529064064601175727787433524522849288182992106618188374871526445323248436590432543095615638417903355243917427729740969237123660413126258944509404835815251108746661847037211759000635240120868536198619322903670000673637743489003653223556583619826895237931913374055185888405314063295177151439318530182858205476717906503175248963075280000883054068890273088299639954766678663291070012975810259331628106555703295942185911200323096139396649726648585256841606960940703901157242674901300938101558736755445753224772487289564360737802962401696562620404076369873968923781822509117229089056276013478463025170419747621972080063894639676350898331431152897896532235149063766291890726174877845077398696138621539261581543975230354695557355694947042682982070339296517098789165800644915605472301655790367734639148980810203602532843581346772382745455723416347855970452265875172028540432984521052578367059558482917353596749848207853167755715770658340488420934811220478283844138874344541545507132514029111400101660991503064189062474617733711631657876010297034056152107939441032537812503724010205761675031253688652933782793768804936320982099660054325817937399556460802330754116070021150121910474172344915668114297126071573846330940697971543349000293488150823445637855488147636160987116650421048772981899444150915295120755918399917494966221766454080588372786635758252204661095020052491489250248410402466042703907764010030988891394571026196271494069494422645928156995150277606057032066080595003346905913726995644107457164362949739662571712828121710381108660499833863368116021544130410212510185377434785577561096888234761961274415507903484456225531725498913416609285695009434404256105332913402311680053876771608453278528242051656354318776616065199138547339338570885241224280227842928393450469532762780728473863882304045563095702943043502700383393098082931180483520433865064755069266682878796689280080036461456543218548019215303797574402941943515192230170139186879332493448569232850657650972351404646014449451538891016573181557604506517334960874035777498415647944344435701433328530576937218280187853702798633035498217742350768094954469972548001282650235903924705116207901689938108291119509038622763409118622622297962004527708681380215000871144934768296143683638668370533691251214181131728999695326683484467755919930513065096219476056443487263161979755864523792721955779046577121594258731943638173080881257494789225131474312591015018495653205411906134682466038962002090336641096880556942483429320755893314117166672473057228970379300994004875041320057660594277938433426966406147211386726628641377224918273395594668129177625612642044774814818622655038363829744578823290028301705729227559878634386841514000167226966876772419708341354804140610990480782332037105712229197695668625178511465521288903013386644058215094820131073326899697972499638901919156046579478859175356052571116186207892030831379538988005774938108036735366168810623802069754629491011437106394560085106469130408709533788709274300064960842386931290264410871275752071548678403555014391981519330659125591611665829934840824735438305539407708661534273966355941681409801501817150924214350166380007034537019310434322974411684060362305666162648268157221334058135602067232492441561833684302822637765852681725068610817151518668786515281214205482909549285485241800275003068103028845665675979020306547114349524169027031894147297663032635268643036054264657760481696611160624154561147889589670124096348886503485416347113454978458278701048324512986393869143027227604660114306455128257998055415197639964130992348261350081073547509397100698471329829421321306559420204743721535270729064588568167240320557021171498842593259280209882856521890135092201887710580505984775972002981861706366447464268901618963872546276829624031484258629901968930341370799711169520212041495400837996866890782788115923442040938977395383945182508123410594287267293038550575130518594971600180354907586930793085356488663393018590267408397060237533968187948596001409684091034019065634969865108805228040149719375824227940919033374656228180385533550798510323286421229333823888198617663786214806365959687794743029777087122994258159991407208530995378621167174757605469663139898477114166997238130084590135689509462224495991659673327042568768398587074299778169433580354227522172890043060677930892064634979097627524033999083150608079616902648405130849018256234755004089992746147455804275995503053935334218032577380486406125229624558993688462249639142239727334297397394274185647626836465242240550322188547804259744450771326191056532367368733041103824503902858205559154112551020677002734215626211465970229795705512566760156289181476495622115010848619409557083528391316089872983277028351814375424587742320142714652689573311995267621560244263347536828958094744961592011815770096595798803802567296398583495033440458416592095036878817281087282772327357098342201924765991949664253949644318169016326713720978812062908309733181057602242884497161318222299814752756822925555647286074986527278790102138032073828181847491531337675873394801075249043243945708335203201014939207837610522831514369399038862096568891712389661074172865609062978903401853680490726844735117982823529086233477185632205010938780391521254885405629296676460111650620068163117110455720898733356907867764192397137633864807997994012882156967064843415080173055986011143734210084529216121510794573444763862887552463053584695539787557543475106600448070003521955702772510787155790948705808604729957476627217864057074498956960794531085670314652412415760939736194892926248493677112576212776496932317314133315063274359551819470064554351957411723022964902790111246063046021997741931395023628244913818618376022214536783516769321522161371370950372468079778981656050901171571014300457186752465058115149430702911142866481841304350641657300693062883606110319327312622074960286494667872492702430863419533050418674974684453747269702384215086413756050611979624939242117688934286479545643145397652695537140490833618168430162015882256970848582474819804716909713480225727197843040662092033552153567837811447279759729738979723234019080207770560794727607250458718017890393968208845430692249357118351454809000743811057539443663097808781185719160093163984601694701426321512040809774035052401967957437482993854675532571099701579560091759206982179105624064174713497176169085575470862909507599889780330616692647122818439908157956683986061640228530293956038157421926193810191055590174301457216531898558990866879674872836163704987596046743457855517010243826638799935842184691855372859673627769764251051065454166318218473195794817791827647755108681352512354106710955202455314258416017389569397770056819765756484715754515151031637377503720066629563211399765680136206811171704982537062314557991722645002571304037860752995840129698469627778648143959639095542404476610836157936696835527248869154053354418765841350801336338714402769961946835725387767157394541810570505611590782361163410914056339576852387415296077940449544627029998928381356353378534470830427002777571170724348045642436119361222316819271153732510586397331396238410282895532857689401256610804278947672363190506412323035291790481604747942810619786439882959995575763548090323495972618790526787658592278886873461603212262714304545211166834724842141791277629825000028927575928461027410266439548651176446723548846293372850857092596663495204472926593119798407170187018406464839075784794100255270710676937252779840965043436838242540677203615064377488405173375357991788058797927458272022864645773487626153071611853428643543307213978635475003025242720758868956621839299274141907457992231683850014806640338172046616487262401402055773077525297662116241472890585957689834632293017823768191046869147815240333979171332458847046905641812094536825186027989496582862900669881337959756369312955727830751213543973914768774824898243792414785215899721808076737035711043323930439874440292023962760365031094872537107945196425828541552077921135688566334388514977805714785881724651069498314256448575820489069166695959899379058773835817934301523782928104558270246244014337555693112137002738191705336952101508019772204111871576354397640004988550828690653471108539158475185903924709128086229972979701441680386399514977780053305204889088718467425491650072353230775967652451478091374362840004935558305964024583543607744963324862412654399108676690410120500116297352893870744271908367097123020398812300534768175598827615964878342645181935735261181853159173811936532471537948420603346658928453747681678004056068234167204982256625526124605486891756999509161699688195054644895434999353716247926589965621127464058871717255880161808779615772549462762751447769249822266306473696159926427288893031459984257354747096348652037354808899990309284974880962324024785057470127492466318425431406279160752497747087289308652521472772505153377266302469197027811043852353677765487373537682782401393717109449024755184074974045371758042587437356097142021267618355898820224627370741871585331860704468565043449740584622005698568916110207764959329249143767707608228460694459329434173604403392693063821046323952964401446319987373746502266865520329305579139141395104806723393422624793373999305590447835359625762767776508767456199969361345912121719861361240250669747597423875385787421292133752328425267564048546450198521649678637871403119416240654912569917626031951206003274260108044340884458357666061276658111032546533098340643832841974649558842650040702727943603003203387140896382394998550103627358730101252276135156285489659398496661464875406211002821155979387071663527166552272793688147955800751929691401924666699703370363339774800623544451629861681015570169241685816063914926593358366378906744720199220655436136560877868852340605412070322399427862837877645823229414978831778703827522083132566967543030628567763370067304501060175363037469189975966419604284243934454585275798684974467609486009218112061070107497742895421988993260054797064913764582092430236257075622070209862049120656068112998606192335359954081653714491516971187664684072478392441320144808171502051219531258717121616307332010636886043405987537342752307522682666706773144026470945837009794904780429060161780943857131648582644699319197935878621591567764209076214948508436931935051831289998283616870013673111450661056273176694446273318238238005660204597637793294323467648613914600073731364371603481319955534311438052803922622833300318084643158096582317910711485256541586393536293153211562727320180818049980512989631638142481835292044692537411549507788687200807564510906019045425833677105896446219161717028538154411014799965383787635630579581832057499979198610613148388173307410961760348986188267161828037986671813812361081301738011092672443648370221621784346103563976611646593765904848429377115458834606972444326727523513180015382213130853026078473468670346882816022524015018141104051389052231956729781398659170935304140254326295107587767658594456305935322802662964232343120826199375382047942278277731683328410501656588322373872557960327828597945987595735080595740327206572534502209744105351714185835403370561003310183119589652848666974330724533259987582307752214749115091961924850520879898109516009095240585343246261643564388438342501171562203044882327869038612357011556380640331605288992126855541051954760199278915234797869069663945189498050397465963192862043576066591298188217775208699555471639637074296116026902599529456754601010197254612223065198917054074174749244205501915545798907425346404310592477815949138045583927036937504592669857883995855490428141183338379427029388029059115498524162772305441987999677400619206743807729565597049759522255999708943024313955699851310614243319741603545815708510275579061045951604803592716728882115441531311878874730408900395610516385780281016804806823066185164321223633105625465832976931811450418360915893417453544462778357394707521105822975776274668616138979997703792834540460262705766124301470858155926669588915002019643508099582113978323085923540053898584650127899467765602355446772765276501849889310011823699689109430980878707754645375215523828395771204783487853131262639371084044725833594511708265602976972388119891582004470266778279842589744589792152277589931303962780134397022966495337567331586222366727597643776943533676694148104193312581481497448437659820238315499986054594449347128988301972063414146784991301110096463835447630996014171779225739292076678848638153733932457695666899336193776486011698730322703665891946163344104601175601036768493790688861256880678137243129360921704663204556001075218390695002989792894486666644203271093602656018847493835406706126581463061872529170185792532354871850995731419153398191595291757225491231106836780462328889270552371698906745703861754506245274516532893673381621714618390884181849327657334936000492091245495435072532041522637178571731308349717376287551939859773938682256926576544158013361341614401129833442496219735307073690025617051153756463017626013296333150360521342597631968291948570232916038682437563720794412596866912954711900806475488339775537029973903948248492344059508918148592078872550071877395828146657107518217840626856953251677396226831463834464068693394340832285044797032708499067419271141786158365401184233341495402754029865185479280961139484684136943264694542073668391877200962109448331507656011079197143291902467416616924705359232529536250065886994292220006378542771205069002211215990791409332492183614548334641986773543573171602345944150298161180924165009030277624811970615817321848909741824421119547328779402829097419425997392296928984320139100930490134978853112970276408006755209294653453900011814906046573403447642589008624560031369162869017241567831787650633835264193310058457885298177051413150575217341871125169767101209374312524526995674015917718470883099437954565145540074202486100303587941265331734690881916719101348549705301720722559734832330670846995955454537787539263713990608358700802327651327491080929169110318465718830561151218151562917574406474606708584198398864932232078808974901880300513936605811345235708488066526379999035316973944336331941726156176610781853692630595997935004069042767222581059706805670113379668858043925939522579516534394646317234771624195593403348746108645805206298072358754896104839297358651751387698283238582947197612957475848680577799088771103261804530036329793232341959763161185329910805495944301787963307041229765570925226608083478727980090805160180992449834984389705484918780391998433171041254454192417238273492832247502184087009653424210548264148942205580608843612421647784878569173697624869773279576152647320214411059159142223913037442993398431868860894479978814289264911895222263799015050003671494747210327063181636972691578328008740191558907920452286281798450823054792698757391876294459021840209940534310070150681948804557839909285230084548220877684796072632579020923139923423613064859452338071168329243684885704390737225642561035556331165296929540421621205559913192694454573982084501606710047182620477188628702286926742482514939004053780827971109446766672246659192736772923704494888226197722252793377030703295818514966711753953520654256277744103752172662446346855448946958016424061298629431899966680490745709674885966613212636340138291928019347219032254131198617272231571108954967745197191659445666984005645482858937280623343629019816683276386238273943460960526390913711475735862792324728099965723181967739768947731199657412042762448922347411587938107227803607459550508096249875987948552182100526802705145510848402054588834097733204100876736172807991575165811461670730807938883962126800962140958485766384154636883809095549706465502257554994051046934724067942558498651382736368175046460647349056721802571486743565329723813662111118136936698485408451448766226692504976100595771348307118832658023433712030788537040335624238230124047367591490845386672477390226456164798890141274245937889489179290047307024874479970710513536103206622240025043647613278384940036425069275785301713396214223284204711125306146944782579942538866200095058601497067028334340388264975649923611390459821600363680647569478201742821973615195777795537102378067124584805665317536282718889927876452653624174686179176585818934035984543701916460214632845517353889900846084862836375553067165595278816460263840143904823114038885696533521839419328454968466801232912725984292263919638021935037779281228224290562198313512582363578140544781656080340565207345704069628912645734553262167916667590984766086294855763038666875166067405155696239774952739302362986566958985781756479218479591412153968708643584713869585246133354061825765083429023736980676321705140725473114102464726022305920881989100030182904464970900735459930612265058081212286505436024353952839636333643104405732616219248036467443322868248940860981653030834344816128257387126507419574113924638779764733637458559317187884994271878391596560625199696347769951257357110277488093546025074528526434619910427284309076240796329909326616132516687042427313085793048134038406427676046350773570471813103380257723544460719812836263623601511442114982982451588462247541919070385819362435457116218424053593009967422610824992720140695374802882653826074061420366338412274313142697224984778876164551612755439839421047221244546606771398216496685447118554894554611085254190213293117887773847692553676813319136287818307822328875591239443115094325365710437202077498383516364635562370260805548139493380530645453197565958638992777834427734079465278217081938968824009244677464210562932727015038046907112041919236491959454836676023731553909190835692808030756709622034477295856418633765440728538434543080194501738706992469549620351191891029866441349842531551786699659210416248577559777886657488271514915771770575351049753650555221447077749547848472345184765370557771207887524486619938289009718282084689723103873039250023803246033009810173196879328551764833131899791481171322468994946201100661231647221395401372473961624486916850392616637051060713034047770162018206573555820686265385110081685879147394955150569766069143840796432602407837744426476113193836425604691458640401865239845714221334239970190757461664653657974132274540220234615865644277696146865001623407115067808614802082128724922531007391238450540805854910323857932044249972770476825099426967760255217699625660781642459165923731735249419595628877048405289598224554970267535431327945310151279893191463357656106291339487030229141764902390896808910817062384827897334921811109883172835235667448390932433905061553522486314942961743295472249269534590758205647728175194406149153154276836246955806219767992956755694144417382661234491516957779082183369826996549266061206616347684578356098362520009142634494623631096099043686308960595797745273444841251224201182255640368663669017807024332468398862369773854653989245517977394715038712895731621781405512032957526282470220147630525379631408667676632512653467978697640747159851398984567599211231741750769046433100462057767712659327392183834438586348056004337330970156756298781327065213243936835629780733850400476502140547144546610390155807577388729393044294855101719548134210627745801563112111345422217491697224933729019295780542530010806037146649216408619948397691298215307504528040791642720108210378537468618335576240578903042594273133625336112115293982241932596020977958805126135610832800788326399373173137779654518281478821071529570558803237659324330319909359935897528902865020929535342733149210554991061389066509396967222518780072077356458668222999554720461207656455945564001699926359960225891816337317846768923155433937388034911714936930504581410006183698240152455353615382553308708678839265739885614823953175116917002419763924710992420249399506265856854573090794041775528155479705124754432072743294884253652739546614641358206794908782087453359047588956174652268098312718620990333836226633462855845034298110316697533198401246316157909733332498035983752361300022126418145658892786270701779955177932122300530209340101329478550687580825836444035371682517273084238548249854183722233752406888823416599586688801512358948541216457186082690221871895226596100547085856745830276862581949893628755061962042037490326987755192273203962322608077274041817984119762633162164804992711452759197315945015593542221753340796836318262654683375958784676303872055361846546429532704439761498270138795990900488886433106474810397719734463116841684740316270342682693375899392337311084246110206987537451338537893677553062681212133221883443102198273344361409894112299313453941063667107579367353955714758969292670409560545567532033808990327664467278153325230217455541892317865134634661426648360509812815399910846479886422762619993177235397945752729948144968270347068539473524004756457921288774864419698173302771025147275934061103850716855918232692581226628695773161268691648467408774540624094022415643095943125236064229722308301348462070117677619689290291877065194788130645662499381889605908130683946646656903221775498420068956526773736557558059445781571874046717433965844548918900886897352043942748839722066079480877947572412892580509457538616847407984166526097582330334249433338971239703111920310910144287685737644574460028971663003460408315525479167570928992683859704970157339942072781619817479660284155057340145306526856927309592402128350218117374169450569750758588193490871587510953224247486517483047506525038994157419788203629658554630313964058350852079409775138974564951323196048201108228710352221606882930094922641517938825866961686715857806500645882200223813756539836217763067214382849979777062465886908732801214773531798224816343995276401445363808784369793696638978425844816817329021524370931442653858231345841620337684078052735457541558967186066251071312884855934540389817411439136728740679802674531675670212442756844428731542887968813930392397152793644128027933970770782619808210931197464925417362293157434011358547465955291161331569616490899592672830108447585112072631091866925113911135019457627782981968822295991984377965856715892683572694535374181180531641488642350499715638370869980909740605366413034003920631596453732239022860994902098205197113786792908368384136582019259115078226136544604846902086288037451041437747160025705799018911438166397672901309543258956076240640021043749664066713819292419893023680669284570387684046472956631755584976976962470210409720970919405046850988739538527187829177619561045628569499154371934201834207599078598804652077918238322411242265506102167979575545409120179183046211066256441376912406430893359989258186294732384169040465839844243099611582430127849730926127046715241142988615313001022106439486499732463134978277895231211852218031143438770619210511275451222091294175658434542193876871676971590550642418664224388158613229961802322459164419079836298691964116071870587670616249278145926644482459243545425688663476180191280937250553289537993013585290717357964239378806461379928681322055669974771248621646924427535103271946914941521791669717606943834834880842692616754621646094050810239871822710763552316395526981892691135094374986048006040244050926467977492956792792007277503828637574665113983458836777578166224049714230007820309267408631118917624406608607059427797435964924029303214767905444897888634175211634491467146369319269919059971559570157462198349422146318736588618370959488328536096512255362656547488571298178199232599243597267308358567888605990894927102183464340752512842296071152187736633422067864842579086485975973643790097561595750981245737403328160064324094742589250876758359032217474560046148276570215860765546200408721331145309145113089330015707903814538215038825177862739037988466433093914284508284819494577628746244428343690974238563394353990366854066060632041478719439738433597610745615933578196630249568255494276370838499894980913554632560533799530588972020436335346628426211942397132647941350670531251368977115073299132139935059045601496823439490901604296170240308309712469471253860109141031301968053065136074225618377599716100940450766395658370683082557144589548972481021526360871902769875121092015840160729538540831768605351782397356111528380888393552944572344604741214471534308213696779729984217357311979021405883962010110807096630327587570912454711537264202050474186063926594336398661764572164049378624911256419894882801096129292287786197077883300245785040296822543984617561151954229779764229739741449161055498528148096431525955879946349305574062278616228050390639670744349842208594479508201661068756962318855904258846296391039270322127313832831246008123815894441365444804103290931896887556141992028715549418332953717061362843221323312223890421143852173717885334121288340200752549812916038791052101742586040027080132253150472685272695443244677126813900037087787989794364750726019778642228832019646850288271573774676206841999267730425794580931421585576797157936220546212793636110343706917926880224825448198656260490912386325059096355922259226128191633630724634920101868953910048444095139793050202359540202012702963134241169595792989513657693260956012476438478189766447479395732375189459425976007298911773764129604694667485138906227859160088314482503256868076628757743297637231674266969878586156053415584342504943275499542665306700044032659825491653693361566846054901181128257286005642532666092186827146257167668094866521904334093330443387329601249806557074052654665452434725023991740270527296611719081223201223055487235454475973310168954416965654536122311041812095738856675725286625915460073497570505100395597496641552509543708606753757743183393895031170943374852716724481914135714674934713537254220030822283937813626534036022401407983675690452924207795157504702721043398520406988519183806119862863142131076816197822453830646227182171614405752785072482460409610452491397227370431253678752669417478727992996536401228601744589642594609840029823302038688160240764944248650476727970130747226528391206432740911531048206451485394683111419026293427515762490501723403666589273825067716744075556246111176306085765712588464935381029078173692330919775873885222876771988802073611473727606784755500819229460360296303392092665037613648959022083318864018923678863897118851454002259042378216434254055229317395452766657386506284417983661959001692861523064612554703236407954236719924069533797382396972893238498592100752630891872911774087203756412308835742926206027437959221294981620451264037437339195906313948689109828825450249377700513514464749314225466095368705065767340561685903637776126011660026630342629599253808608979397895209153392426836758552612084126299746837816228090388769012796291902189159741180130903206682463298540634853031602524173299379687597342538145907186850095641119222326349683213427162480545835492705651501920764340894249677730484167401776729665438068092942502429598415327645641461539925109835050407463195519153133043567585494588533288968561512143542707654264161012401754645876620850898820803050559657736974453038084047441457211066816092787096118703743576072287847385463938685647762604844257112045865603624637327723675796541367694711242974330763680301898685708246243759343019884066711157847706730941960591666041208087718224883055632192199777262810292092686795012791354589448360954594820329502434313984045718556585630632487877803410828078927691371175718263891565180663119684559019385758800664193858737558318720426111838695188946107032919930986533487753204933068734150811018521212684165967704819647917981576377654619762696594507064067580755036293276103979830209005720360070408860728435609714139048047480062693495058649912823243249705285787674059585998772165071958274620309620680284304373234510467199356270489030579585263779545182716557608173880654567455309448037643428557585180677329975850385964896009654748846514589265497119548301020354387931156775032539710795293689986282700527593989572518748454970879027152845161876639915678600910487134359031508827633171005427227190192704741705766846455033240815877634374875756740524850676985043295777331264844597694890911621629935171133504614274736164930446507608741214926507636734464071749364577837910367988317914979408352588155351996098169191445569080685519915654333659114284130265159407210997388929094622678223479538276479978904607240699827941567299480371694927209738032011950064352384009964864739970219228235370724836649178893122042059041523088882304476760481360399747295918703457623603192876919254494261602035960131728503476145436120263728165541907943057805696384430727275191094672498628189657604953600255727871541029270785961052232968453254172434517576560146927933806818241673785456247923425430036653328240479663439325361714575529481996143298944138116464542198283330253687557889113671048207527643496850844081924684043568356486725834517592348742650110268783058517505392905225274117288608879021053123154678045644379000490209955803066979118720070294298586464194390734062948671153991136229554380987960126592712514256894486485493798998567042834545255149855638068202576321982364150821870321366716732256086316147592505007239430256934528441702895464495032977473719946261330819670686217497825366499031882717326931473644220417423394865712606640227520558048462933215783831709600836259074206773468636224074704092758049784069094076192898493346495090623650612099119278784688309357905894205401551601330666897248429010751032833861424789235126821408595578243967368493553341091390343688763998216478900918921326114506751989233016197195285775374640338298941008483278338540970496726809332064242750432833551706762279507351793418235979123409122959902223809004909737658647643500116331672577783870010556285607817336138505431400984219180326046821931616865357830352430958432078024129639622074519826820775336261409150662575679099150159122656448210453105237890649967288543532098278342520311607097540630556453916307762035360273949576861367425784741510762733575474125976954337114372412221558486216143464271232348068743535085714462849873905434601760043813690460454633379528673469357663319006236491091006150616472351614281599769470579119193007920698705486472556247268580431185828932876229466514953296172862158663939755668351576763123202111498908726901890790188220618775350540831749088789397112897254626106479950755326602915987902202443559553243417496543170130359208745290558754003282353563861650813507420400605920958080960670800536199553696361541878771787016276732835655044661272331518307198990938919093288604859000607075016847154932403090836712835668757514072065150955873257082885789409061452310291708693833203884831914275655048392980074779904680569031554157641830608262545766122609947269833605250742195053690270751296486613157589265199827934878258616716287632286845954974666100322868167029464239988238043694087239312664271094806940557624299140372224923963405605503966370619351229681684905374266329675964877902441727782420108064175902179386690959559716713011285239987065018441291005921467229507697706977139255920516937287405185702411696762119460793094546912992031400550505482406700280882228695388434487363272609230965901667587982363839349799529504760980444838676350832544194087204195346761875374743776263579360541143880608600824499596084205203290038032416300306313342110257849366723410364434099394612798950527190750459496994530871676694042296863321372187318767461581466564502783905105611471163783138855227618374311573718338784640330227922196723046443260815572790809661606248280739253333058753683630855836955146866305591230318137374540586960601587349135197994105184467950489655057349898870834581134731557957309151043510082377565878663736335349609343910571472820389217882118341677332769912039766830326669083544752703187866153363930550274871452148468187140395582009601411212285798974836418994694395922048872529801695922177101389265829585777181672575083171148429436841068486681236705090110132223373010892641658521223493780314817470245015621472349626871172125456760784253642320212828945957491086450770633815389013021994460369696744507790957104288271597116514696052257103509314266536326925658330996300389239237322967234344540873795616193760664320346160178393453733864077815900703216028515856520587356523878847922834245166821495675885335135839731090163015085604066627112422637604392764372630115988603476252002785790286884117099199097200667731303630620116641206040322976096033636606363912167835663468196464987876568247296424749356627235563017925465813993070262558942031914109443802354324152995493844740946625221781213623164852460592396066371427012570844853774960511824453773938761864207365676806339842667497776536596001514318104555999417290496938465399261272291517092097407129941714167532537687280703745180241461031153863044665846542067614848193051135756288845615662009458512199508708176552064923436242435706669154662634163048549415629300380081559726234676616589032587326578185640527169790939805669404359232314116580266183136326970455509991214315843784043611977355919477811908808315582984888665010801007110371798499930356601008873209008418590418729620345202788156726583209946159519318576230599933578043904538399872379006682791601606117122247303602869404943895301538241850895828163826961140336536681429538739624352377485377555041508412531628877899504326120272012096702652377147534890227834167792283213502164466413918911131328342967053401728383428956431405056774891659667395048700733194473050671001170577589032243133875716704659475352602743077551703773571328505341168651513566199613010366307918860360958321874483416768002517946797201305356777435778296838739096561031155493584426673433319468057677238572303018775800386316496916637488097059461138189975628815883595901940431218166384862348142401822897215531959926027574149610698748627845430286142650497121460207086275127380802886309778122433999514535322095544749921276459033219986284894904114854829134864984477010346876496680634669811712576666088031881292799864861255760335476862625588692559415101473667532982749693290458210717438625395062481167681318666748965939379941242687286736960693380408831617475698441176522688817014226170729807432371816977115372644039528139910072208726006194915333757808151964198193475409487988681867369802140003714192415292917064726601624614691447094826957261247256318202466476108977091029722663503262554065856123774943424085589558310924500815050017066165680684569759082932908882935734126817706749548683708916240542146483559109509034002975271106610382604510709655860353315004367130998048319098969583168579814515802780384370426490145258085557404764275225430517852567445560298427034072496166057513608692893484185058881732204192040523556192608379695787037943163665276834375514581878829321212019450104133619621741869680585682014888051685564342897996566571258427343992673424618816665238064106304673011236244472011814941011429306051611180584278165676776582590341845559700761108722023056700694032833055515494023958139791009930476562533986716725988163745135244792208307218312738839788895890134272213386444119024960223350338508600757458826885741031983122595631022542636502990938718545624892940093500082850327391880250917073593432713310771385994172989682818563143691439325566226860106169319162847239422106615402106366747338422341229866472162396580858652271386871288918785912582701224033048093951971966269340301762950378521315186340285350688953180421654764387004948379805471588186115781840157452462142238153512205343045376920118303653830230695344053602499305548169227315863378560932935289906315680453833507831662305683835177830929150425040396458644050554160029733468957607003866510970415636388860894788943729412793847510496949168003990591593224119944080551492096993881115218166829200348201953781361046889647794232431346203732380601537185264693650022256880135876341042058030024779883502269165729754649062833039870415729836109237515303243899691229930535206029462813364231099489139921148364007519561529863402200997362578377847622593499601061937613664356516981528559494544733704153693056434357740981361807642994169758550027443487525488904676242772029948922775819233741473683393388860567123785374827635805890689518788277801290237831702163404980528103137555451347565166040335627647355529500499528422444322768809051550656329020095241816532765269020945331323361736300448115819125616614974190768297785665838711306495977076729498335437274796918826406825050663800753377572149035927770177793842801639374469778366722530185270607449350690104090384978279915432244070878302681986939626781055341844499430344818900394586523737587533969932862521682572875044427439383351048335275020752463897531515611259061524177216219451117061435981243362707691249906327926397449279688400078729203759291054038525502573370455555875367961829376263772181554118383236481293686194578752548305994736713959568396960634184960023661677943325172362078252748105923977473976751089619955412916063898641099592956153609251595215594112723073037832354416612917172211654911370170134402288082962774697923465933611277940289461350256224297679658621519254518886814864965557043435737081474735098558665873484181056895724837199685830756296954555198214146465831685990105062863440915191523832564301180866760253812213137801061103158425151222208148326613014509776909427187083616473113091784417700100938472289141059646935732076669860279518495105857525607968613679379918823429607916835660705350828329863158997769514629572319292178045233015376197722434749962997999483447524593128491993332828814049723102808961839957979452004640701817954861186761417807558270819489580813921129433378301974384313911227814375350272859743576728751181461826831851634129027744403637753231390926730443267843739884948635598754989535921996729683664734688186331557225241873853784144661219044676759635114123765585852899627171652064763503760599059030665982974397280379644213748494377658005505633035610855584125556849262772882436862092063403314403664602007999177601956363150084484794099470635557043733776715797113124459059862710225783945535855636247808478809971117019520192232379205615854781152160630289040912264666086357331492067626471957261999898369553897147036760417662616963456761355348758639375519853938513393163976086838811001061801836013184658904709382790870970409382956131192779699005309375473464432257969004365495881465999049397487051153276802266147093960696729143518450687683735125980161559654783592572037239413956488234487252049277901438078475939857297024967781800259913486234464465717005694460233719265617734840084875401841310078578276273694485621215990412127484132826327886350582115563343282053636023386231437496472046140028369488862000670623847733949842896100981533044301800255558215762852409062435078367438293824451529835219293442937669657390387019338007529458870208272589135283311915880955595653300009078546570952461464525047948288260316729345078706229781957724857469340743663770859211116065279639947427685673337336618590377749949653931938324820332117753991498032175783446203223507583648452881269105938585292761940637882642440585040206208064733661939796867971807513900496704685010293059586653645623514059490405173285463240980674716015396497322315347503434973008367119409724320939789687516628515996565807531188257993499973468883774851576205556325962235181752719076146573514364410324810527169597116431638181153716147486865551986110437558117498899957725335973366261441177215046410315182715564682899065531551402802742188186650523121608069934340639428239033952955752742813293175363925399416742184258061332063814100046063142397738870136633018311082490942797215085736006967414787622053453798281209397856477347739635692594988512545721538699581157190492136772513439084766652493031518335841727191216883861308481232927518002337813858103082229079987101202657736346832902080820095849864739791563046736511377061958203274639836731279372271479206919463568978006595249836488647281509127423406357175204904269979730220473472349901931523570152343265136076139354438272391377696600380606589454605295422940710077275626997345519240870633240585789031322279326129228213624526638654588295486597876421924665408407963099115439367361656055549855566980896232588861921274450645127586298918561985266249835344674229696320148359855940628795356014872257631273621937433444290799431630620319687066586421051929029462334743463967678189278461170505178905060706533087679653382866636102095939309870239468806470267206651479215209656295267113206291835801798155567723136628019831573288001990690915807264352200276854838581865807708377306947217950154487942902073173545948566032711823319006135415428331516868938630309515229299415970469199596986770497802830618350443209945613738241002360326989610886029475057964035463584255783981406953808340975677301440910085554071986439520514305485341500055058880129893008631832307383803853711655747356253867814281151800396429358647313731762404078828872575167489651796009579750997985779723694827101905070254409276082324651988834903926277027022176571520016929709848787019983884009713854953520420695147114549429148358748501784398782411418497717582694657972123817467994651388309093689387326034372006732718676086094046752972880757789392197916462396729785063699631498020897188400296058104944175287477479466698678180642416823682807508318371330452262737105168707556705418030840627479146686867009492989377477879177635383133909743431473199652819808035591118645870276781010864150852035789251359712850387430958207998964017524488502099347699014718466572328123541884062439844788918506694186752320161692833475567172878311101353660744618059667982503446610129188269496530921254150297216568713862175777157684816906855392531098929218693116507222126859092264844426327584922352774263270601423880230263118897198351237213709752270566814453961401569829301468573463636743516504060396320585822472477383275186237433882386659534137040021454187216514734342204549466859800181475709695747174163967439107491281803248597406013328797240469492723521846909983017834541226874864904454173164292915050482814614974107159336296125626195426936148019652529347510625819101670835259392046544087176942553237321868059023020337526474901327279274484073851983256620814400969645513432289479950262540464285597476137582544577120220706052201172607171651390251307333351699523775570897087912303282845168042863989066372963498084388542210579487182620096861924798476002809170860758116785802811044079482745438516448779781093371069560795680959065908259114374982949558980996872467460470426192742149609159027748599292271235433644096534738427415827338087205355644478008531341655654142889744637900558534420016323009786175665853651214477512994595737396749766425112634853433871373048813823663887864980117337428008437754362204272183881136653292326934803939309601405554572470006023104601064612285153146863092467957156926928215525433477493730420801033647759454394600475993571840641562400923137165297893396006005162188510440450665796348512966106094136029383159481967596155914076492954878941159673107485505464039271972269699105308843525797082646461368943083259578089952480457137706450131585795284367913920343327221836783938330901251786794235408151837677589614762555251822561500624485373121361423442084818463486082806203763246710260477211036101763435252495026796060325045573629315431988367425146405752211718802686251606864306461933849109320524916417566680130623338984342761093044400475769462804387575303154977428764790044306553451706473799300473054460694699345138494085341030669178444479766628123170583189974020785220059082084574097535776775305423589307357239876146383826043976406373237861591071802746436139500008665935475919751045168305979805547280946624038750438925593806723590270330934407857741759427249538215958924159328141742824200732442364896738690113697411581691275992088704307798237517859937093569011783242194839136632703405703908975698137558200842192931238960663984309178778654883048130321004789781584389174848551292252051870134077164055659066800090904695990497770339373807275655576500129313071262539909795108679025295086814378354122906083645391885346919469312335541736708269015848970808672495878419406110908038954472832528207148192701808968089342131182904937068962562819644194858460293934878911700313657520634183846100268649324885768002977537506316736438244587971953256803473409834233541062865432193084273849850683429976390423272780232683866039447579521391634274225189957595610356451646885725394189010267419557517404565264249199061748971819254256626344853686095244753737199808711907156013222609176468255037364337631264103763461299403608770538956895403748548151597445828995779013368950593593207967292379011054424435487331303060898188934223239881962093504149657172993682575514461513518338429878595744414045282522504221634157001801948537633005765270065353054509438033725189451934421265794185145952560756290625352923390412758393516463890481384722526688294580173240537024059516630718212286451496467035425064822951747864329630220169250152682150857593085738502562417592145655414105431025996457782119265574089833960336661183551268729623125328927434754583049813384437633881044935063464036656886747042728837867230467867351441807765450759676217999400935627218110916493700837904109671261401200323859798407241023895796887241063848694674394998401634151468335910643747158434618794082995984409779013469544680568994157054069177292338311964060979294818998393394289006139557356226784839789308520253133966851495151491191932627837337908512472959849879411904894202072844344579148240096333406529026295316588161731636875565503230579831480885331510576316102592035475304233516046564199444763351988463586172897693677818764366854592083253391253841536733493365838783536191846270850743165338747545531675868302769638750299858316664546466067870448505771085585498726998160289630781216333294963428024630377102026773770502028850590913935307575294220563070654171794067232520503542798270153962859812181345335275276275417322214874737536841118506588709211900738534364769197503853132843017801023910725035395904926057032686778616482068190757919762824633591617448588062593395907172165536359534464267043166562053431030606069711232365386857894629329352757372112648969259860084267693284142618997379072635639403415796446773709737446262115742295809935881444970568846018499481407869047256462473965442842961309943858148292908639721524591425779166999310565238534602232799140942445800231728483521822180304650978712643876280276776781714787275341431016879166130068734240412218342862036746438130385487649377820261447472593699581712186211690470517720172837706077943610477423549875797830939615488975151652791767992102719946562121045763710819437605965717893198811317980248270373769399437913124540638206097232830021430081459871518613866042151878597560635640280524869438950757229309012619833778613307621940680421631863475148237207012303773423592569874606245823332243912594695964769558626661304418427697101315941395691865897385116946363863076069778913990898188133474837125191624791093905455923814179789119312845271548818644947336810332735318766061441165721352763783578661125479733803140721530436689294222998384295749398828062947569433068554976954969297267474729739432168481067628407145636007655829123311980793537331429596107532326837175346624352621087767952991675641668741130666003016186635622419943318732379060652210179307879620771646938777674331820865533807495546470063910967434821320572506155065487074731976606959556234443489797700267693238258906448923995932182979137139678361854107894136328125448748330239151427662770342772029902815523718613240054727589660095447842626147546681775539507554063224600724251992636167220542869478682726913420237779538681567743418198634742685555601026592702128371696215730559344651508157358278586746476355219141577695983795333098377858883241614599090427652705688741825672604575620711151122464671179910149058127127252844358660433292153402234663456730401980470540675691116411732249507959026103141703673504411383661720493918977985532513611765491889628866194211889154172825778345865061493177590740847459701086315085806855816523375612127183397062540844897152382239422816547306450966878593493613538135022539491758387727049447696218602102851794533158134676975925182838291173654928235260222345831970848248734213816264555693403187043898568246383172125052590446930301747136843657898116927028322134820173095890943903227244850050217051253320604083521137856355295008840970769633241484693973882163695763730255474727484221683686882310257767839702691987458284161715521684824135741252320554707055442514406470173977650528602851429643040267236874098029526896103735620561671823246876431850064070163330427848452893058334954172383789151096765636295423059419227055474527112199218389087493437215942796196565382727987195596207831925133003986728872617660802416251789175587867311396410759662743903173651102782984254783619636460284836925814095897614687370763310804253756787199137651522308347956947162788443822148906067199948036238432165347151583593065842749370335284283615120577088862797564140928548863347806720942229691150490872622168004253685025236277895069634858775593500555827464700091851469508341354148592262763987893183017561065647767799405670560735343941843114423354798449871229507222152352070847284568624690315192374850110610475629848821060291758460410692078906183363970353541077316516430360918614905731676487984352776509945094611902762360905875343833484226002434600708365910944953948508389521104288955834418037369455294691078052217104225658217000979692111195277254455836308940189113033695235155866708128855675091737711590677103368322941962164688956562994228935748799605627906294263602704236887002538065088598494100235044497334167318555761038549126551001063511088058094052295039505201402230504528983043653529884453696654849195486157196214197199004915476698683878059992528851412921518966875345628982337048867376840111605710935880996992694176682335399209749929023412953489750313894787869767151546450223654083298119467608104194798141568167411658443312622084513644999300902495454026386964689379181200191928147171111129947993934579696898808250274782859298300382189436059971449515712504660904091043129224546173648071157190023683718639155811363601946784923193222881966070616634881134207148562295443904298965934272801024266886412097341613557694748899525828010691393159364217925209857925959105700976868106209952247512365706337402648472971644885034892047971994787369002066611989491225310914879866665511152439022465580472036246287533741862620270103648845861063626390117799795766452993886734420915133964716789747784137141190066979181610458307338600631310306939728477097545856560696550250442265861933867700697611323082408428328055703468555944065153226070935605597685726983740944317990034362909595353098979004432763383990041658819307986535669369828555659425970405650272684407592272767890067406431204098798483490194205771583423886566852837865113826465372049900173473460674095886921644153658161748799890974523009631584911289810666944288225877751139021685520506460951084974440843105321067222864058043032573942007855874907793132062874185487306288488818113354530647623082711517135684327911427886972940411928969354876054455094789453057094831509467272657160721557069768789414657083159188039534280426032490644221255245192319768370826205063773306650150094116740202931292556760569529887625840479441445037300501261010298678867018443786290836295810098016873104323666298170918512373936453752636115667528228175549698431258272135536890886895846244011032033585500284913254178486342195615974007119760703706810939862077996076093685660899182983207727353023300403809204012996387106725658804022601464600292518751235618602792890196191136250585867680102264269880735659574046773736607919909184599223536460399772535458266271369518670972133846156771821402375112873463166844310805526085220521244888076788109759845896504990613643127263593078756376419431433398111215651773033190047080484248094940704597273631248761083487656040167861680444624529789899838332791424239494769183760324014435504334998114678839479387911597585277295368728826331042190550335404645971201196020726883619920623013737102895677949627356042724971544309880529021698671600441370367799304253309890544524586891323010189567777474061471876043785626981257356518739129460292381966772260612103610147548666104087935868645539780137168296127306583142972030405754585755575016537262153426845256562538142388037521167002803612592406081757359498727197969444654976214088444108056110891103713370430293573993410834876086146091184671116630582593790855814525043284652782088483550737717071232380866768355604609261951452226565854542939964077861615806724537471519423409239531165651249959742477756904312066759343165810321290165852683663499273900678671838788379861994381157962830876633783206507797266642781340880442257396832224839079746661932008283286129665195021613958219254498228328662639033237223728714288673855106062113941471704257992292987226488859512997240856107855992579767531454724537847872015874257220467454313931690853926465673928934965475239425304076715655112326674916088665258538008066881980425834437846085117634830688296914470799241466241011899708054319302277773582178656030246996511569082604523154971082798382519010748529699298110556498309296544359593045047574397809042067055190631458516323679693694717158232450194339369529457844784562796045567568245507413127969438878293027387122734048640384479830487706497833532444110611729601663636933964853488549432989540016760775270539474184836738700414601067532338266620939072045082071575421082969525880842900649612640482309081157082369932100872403321284515250395534202219978864732433164125396104816762818560647393930456221012088209720008213628297168122715407899178180117522182384915590476011546067445745603924004457646922063196377707528283037126301424577200463922269945621034251019179835051411668891611672814634134420970099132059871829253995037833567966716025165136867994827787148402079121984998422276275742900473574732215799454354257520954864716428907471787653684520812483816428079054444802506331719775066618884038543672693533422528284328435801302220633179660289523276802347139959739085852787791093212746271785777885315788415778740745013899882940388283556346641474111612331597616716241342589505073131568706683677684789400037098406805214608141456227937427809814748741102936565307991708924797751750655902445597330838758486581817419554625765380310036485615299277546265663363734200656439287671192733179929129363431666630892878317982352221336166781843825656194592221775073565705886412072002960809998489222461024797678105003323442013089309837706608286486625856853627399726108351631719745546745181320176854148411943859592173964273075449955332961397974088239801720494687493397775925786078053916032654605068689945875702169693075686562761360972638828520901087271719790818603051854875172180304001083169080642278914795788177162970560042039303749725222016579171810015151433933180343831512300160943548965059372432767738655977471829597871587025667749622505042456900928118750128061508592680745872145793800649933116316799452835236335010989402925553966750451944627368665437943147092974295951565919066327322729928636259582518574167126248030531437528649300690485791612542888522324183723853693105231310385211865918644460497856292208946364139594741772230623675335230450417191932206387957565295719591512997322852601009639952323036593986298517014154115383563848128030177866872988726705605054641760013569865444971759014259631666070969499343202403893355407273797155787898423926624838719762725952636021501104253759070875605639692773005922526094889064042411370628281995431977350237216234782586992787713638619394859432574882915492776041406015235739976646374936045224068740799073839133865153540370541859087764394576359787250207451374776320497924693197483673452381806354502572871068328370734985441767254472225716765520070115754118825284928125362877531121940659632437518541984262262662397601444277040390530332473719207263695398558928531990880086292659144099788983323775100659134276549384337856583826973081578586557128607025930338480379196626521388735807464048329191166010919281711675062778628165612454558701014209628958521404138529214858290688982033766239119497430712337288478074061063503609609419041547486421173053084505624780979141748224912085593640707485305993352876486331162098200885494659879791803059533425497760388882848058155785521734430958547835372269462024845364523533818034665310052385805942619001014242839407370275859961631708871285379427960628827257355639654714577589295220617386745199996327481890927526369345850296562920525680294120975263939449132370724653021228969650464293468996351097013645740991384300640872954918538382100880492988682012121829880830668036279524911363034385841523712521467507768688879135767808556738479593354750204487126648005436852786803283479059819393532201899882961122119962063776578043266714626708711866683756228731089680082305313522506768609032831564415713136130374955901436435916509796217132283862579683064971051618666651788212212483526910603257616502092233234716134736141896445665266785047124341172071064973321136123205215522717533887213546508025041154211020971733094858325659539039232729585505788589127607149935195280792218937567071040333363777445311299354029784575937688103606133077707470048593468586932923602213273355832151604824706768675270186180683162389553660409061116296278128581360743270942964507660101073420266331232571531919322131924540474983959831409536167294418367538920097478526451783002383162804710730845190096626668995282416172897475600219683929316576484700095599851036975775776581808016213783946532835056682866537423031921067318784015513338411275527009443924170519999640663431457291894651498471108675972751804428893251717268939330227439764684656486410889401052522149949279827889645407886572645009876629327610419986994132162615238237178109895303429983122804033899977749966864113491584387729193561220081570874761231453151219452159473617421848162887961792532755037170800929175936500011025315212481201466812545134433674100623304180218964159927441002421530855794159573259561467911683515040830258697153979316628490696658453942542396340181646189032472172597243111919789771750328739694547210194804260769515090917784757163581540868898329680916786039785381921110712693355086861221950094320092795019850073947575250716787053361506953989428604897810172280290397428770308017238671911449851723979097878073006809738346364308420449648227324112719443923612786768693658473183885956306044935087663943453657397839886874424726569291236606981165761033675601370508915268358611355073031156192501504975917602015788499995853362966158547469317700110419129264915938629381881130199057843263657898368647420708614595054625569972990385959984074428328849348793168739263150267831955361582283215279775823535904948321103268701250791833737617634509820999776793979673209173961101706394147763617114801506776334886806184319425698226023052243805666823529921600889372960832333216492178333895624116821213627212812113088006781474341554030672622738126049894830461942730094373608856790611321447238721967870301939146158986440609426942861788539544149652344480778700090621753651199350345939045259937788825695901306010957266977087889313756779864766837996743661926790808696582352038404392186888888496735627611427841568323580599425700224483839305252644221230198358232448083110466318131250646685098711885341965442071996837672099456893697428381567998522555000507217097267254742366440184351802126240621396146422317694828971648241811280308975880093921821899854496136342615480039404448734911405687118706843849443811460688740295263208874271287621953418284950137553173475066085129866831510999129916276675194344085280148268647178494657193716368034185963836660993428705754151695560219547129691843822394891063369856299098517678191540453878114942209186460186807217860912976525019622271828283369524812560301700062511997545616321361336362283016558327442815288895788280745883231356935949834684619453687327306309812545224771037855371802115120717458036715963163319175971903052824592129375977370756074096277504274368903068375285846309094190361808538196919700839968693506715915333496604809209303748172048506179382063779556427005996673434315743493683524002757032474500968575471402507268933744446297967824126904382802357134861148875898757210842475182594177067846304686236999412733470735208902665941126249198576360602310472381481885459451686674573587114813977404419558947174574751238439480110079950283951346998683843569684765399514803566598835593307910857275698093427830976380563689188217592896149325058767824920395176134365075643089077997945503125056241586046960991089972461697459322878960602116088097890287772279190329430699988493702516066471384645957981092627510382435077759582949194767430814059000866648430495146461641993205904008433429403666665149545695033509986861205562611010719634336472730742424390000620676137965917638626556186359095750327706237536092815783334961677887542971860411660360886866704613283486778772564313216219546890843885193943235973895120574972511041245447349829378177252332065210455587215823957220965580159019047557082489035300422731099549483618542165078571421379190561077176544658273259801509801157014287312718691119576220091107238518186694622624851242301286656119921665255794710927183733201417330312019955423589147819108307133109500693103227118264719716913465819754069993814510099948622056067570007714320778767756093933613895518251193066697888939592862216348151066014351703072716039028041528601954526402623073641984602032979369423560742713557007206264837063524189263305142735507375762319383228693746752502859875701081777366266977019710832086655247899238599396251792688047836049406964714504258342041807379087212771891336255783533464767479551869413308845343512333117811680393851046000131307151351607140907049172048133049651147100509039691015605483190706248851546912735397526332607348400691496595770518064085709021364916163272844344865731410035353432984642577452736557253607665985317336112617726530312800524218869895607792130344994467054214914907087107233595180737694874675818877242448760902471901842150614009767938290656860280138697819899961582986208796151077296709382100236998895805303652068591912338645558424878865095851473767965967364322027768136155896819565519886488288927483605607124261225150996835481900079808371773614567208295737015838075790441778556676214788297220304768707654398799217332742857250474350514759314448283064586383728032442569175840456676925462654183535278965571158380857982076606665618812852397608916043957717456689434303172267197303428385503404112642594181841151806902765440668336711263410230324209544887750700801703678222152768656524424924366871948316113601290659560551154732736050582233570149926822150702892212480362383558188788386262880239233736244909604362376511586010332046418589816461902737206549536792874871714651602721338562405482333971965740674161074708149228969594137500788790347295899881019369108515156830297521642496157599015113214547794832406970161397178271324490485367210784274966373940384492892379048658047441339962534553722765972946803993386953904422569683853010720343577049489343744175532184068803615084117592418264199361542866893216938997394942666238792422294536596314847211986406485196553814824394143226222456795077743117843515908628791398678501758047465756702244301393111431819302606622994940264097199306949582384956728847792609970464412055097708423303993066441243790766834649888261982938034562936845231853650055891914593878218159976835986071577117023404519313576453233038443009036409371798937796866882271985430056355056138977229338473684762288852524338348333206218408722364917787319367630623197556951667569234538349261664293745219249371420700030516156561123565991194554199606092454831856347239352999608882257383738076919518325433035102278666280457839802108520719920355684139634722066319602613302607627424455349221899594779266890345204387117333549109012860667970826112224669587035762119846602079195950666867589639382978886419092946801218374788857683267745437056852579364950535011615167913537821152395074180494511338655634228959099203186935231194697429014845100386765247660887747093210509683017404566859900797642606611982464102140513388856284967894050409134215574234215970184229254947100027459402307705502307234455540146060151238616837479065381227124005473522518832795254635854237851540466502366927295073436845688303810111686426009337659205197334025142727618339634137462704134536238903359910350964297051088412765354935307991088123335271123190900398310188173098961162389754789082548628417334174299255734282284665150816626658250925635803302811901896711699110709494152886519226157146114688887917003514339087916414997713228283178798564791172710649180777465706668730999482897688144370864881851231391534631678893573936973733641744118054601471753338794667774167251203097513160484586089066729820979313817615615130149301657678491801050916589487360681021895576605732050194047734231341141030608726724580832466750335081819291407996540348859369645162052248051295467995437225423762497772992149255413045019681613710453043766972856848599127358669428292562449433363508237807317873522265776893610139116853035778187344542706695779862378925314861204384263373787760226453721037509245287436465546226747210563384463603017156510901462771959655449432292596794619356411721975953478228629601578475442908483048015646785443924566003369799814364253302909719610399755792922299897596921138800774736603209691251465413017830948335653181487749188727148407858992746799646642904459378895471766692193758968971214896304977053252300406998802697256127803613749736536857204426762966582294307853175899747300944861827841510833286101134052230999390335760715223336474493296628153257496802430149158520652037540932510878477081688085536367109976329760512168398919107413659051707731112170654038216803056993858878898093136861102743515387521615593204316733599397412366911262934861205890750826009242283179380354533253103044776321064479590394554561642461949131882726004592916706657692304835153347567741421755163684700545272895388459291912947200162775391622206281526871796921456769856984115249114676325388526127738800949441503197605152133221777811368499562719331390097207401679324334946776535963303218521024020442545986136109184968492080260536140494982785046259964648251935623801763195325524151482252207339048920952364526467822855050389675674137140748427826859170776545821790875883168245019636751026198703574256276059479411449871547957810060664945691396088211593148570526188558241191796584072513028099625770668226738284333935622868185299136889469716132085588693770035049437122196800329462641403807118089393920163551338884971134727379337421546211445777202753117489584863430571907338013215518464028758030150213412369266279125389786413597481177833431446002940582010725342483419160817399300773074855589728341042903484105098494780447966958450411080835335033896626923174770074746173512857393706601041690144592309447476284096866465202003790412863628838002970590315244733177264634048372721330834052676453834496066054009879241207662599761108257988091867508980939542331903024707256005195299619479125405097639207708080855316108603098881489166704938136121758234113867104284287215247018254076415180164725728588659133563003661635926917052512733086046981035327272897401375329063007639677724850143678918506285189519534607921678592427804678959513567920353103714864081455123421362273270475037559825866289398166639033794597786153940293929622400393164836107573776888547113970617863865343778722738367121367082080298568824900475496847550281756300046609326427163913643509868316304014834484985931355220194680715585771141747332218080833872548018428476005076490721963274226744137057481994434080526982456609899398983049692045509985315345668944077672710116503713786630651840364986497523520413227957602867084915796657880659282666680798980940531973006778156395773804511516169981346825229848666496788890544164939516578918300472895108442081973125036075901642941528921197059715405847431126038017484417925492258846394320435402101100048233544496282078373922706032978058590375566654538387982808448822360271526627145102261837547583863572395820025204405907967377836658442185867562605654065631380614705705361411796366560721993610052872197234398145695969614283555066879386112792919792399656636030800420620849279439422671081989447437203946250753397464997145899038463226042843960701164529636006835427257506044412009415555825164472624135636581859917492036300799536018252670282814232241063720888925177892199082957949296494209440330847982394206872949669416743416648945283447736177898292580091075808867835927787314403740833046814478565814777394100698754198471638483157767716179677804275517625799708443931265382642185388360329658903657437210547937318762775526310240725618337902964914644657916328417649894260770696873074395360783569413693236083771318682806144402960010759922478572896301344081816443195536611610491421009062848059509820162437127347122408987610993289057727251929605670858341600013903067473408010493082686873981094742602395866457173187772807763584179413726494842849753125439171031073588581103290209438978913059849527245648571556363010247262618195197466928116087362485051119921489002495877216372563574213529159099243485919778611057959889579373544741197809407445088725775844808178218270947654617301111874099621267582376188866424715247113838915796971971559457607545074081181364707848149600092949056525188679002637119912135902444852500836047631529956161755908247035426402135622978842796900247657577127038320640816153544562205157776981428327665237990654244963294022395026011389970223218963807261457011574339002871578396639798588303076131844159037676033756959662818472557891027199241275095904366886331606077854431882641329541446126947757778014824107228107030631728743819059109888840150024245876163656707454470895652646862881360065409823511362190289158995856104739536272716924346498989055525050850843999149135578980339980532322958530098278299353532095723964327733512423996723768290651428334095393087827636925355552142458730153174238417083902947766870331470732124994829825492548624095002964540200225466008158952317426440145355113172088394003997073222068099811148736407892198371956490699512547648573784571381397644967874243562930785211092412864149352054985780167081903465652672066135242794504274826332891395558757296625900149155534180490770368703150811395607691145882172473402120428104452933074028168825832622033272481254610417800435307315344256865448922948760551361170947579280305776028858089793218841327509738169362123562101769862896460374624141974087837337887180416280651873287465921132688958493787425979067492894856030178908249468969098635594660134403192202709580149806624489979195450416817538696780070943788608960481129527218753416292534486089282058741650687818470379603038918233617164429216133733349234816286492474501968481820594793357747420138784528191889102796565940772049533558960778356226346511838362941248409478430091127286267619906431886720501866641870787150899680373896379141267326970149508832625958035073961453893442916963867835132249111901293073463980587173909664124272845015879275800707082925149451631501037779096747263102642187444356092288966597700560626418689456342816993074780009932934494225114052487145027485249606333823659801864481168110084066683106457700907063294312313217810482028215810391388386061530737503478633544661784190649523706323627891808959957037868319344829623100814642687034436716796239685350004330995875999139464368884163001306981986593705486839338937429983687461094649179088159057678318043180534706099747969897041226869847338046166335927103971135016044828784008295008468173452421692763973431879088012520151991873119827998042886690188229146534182159923591194481038799771273299957314494731692772671365149942370368395418090667868428567619724510030051773135125598174395144711417746926155829361622664440896845716452292543864477026999658091412995138359236039398311844582733287657215713286480684720985574793544657752822546653596690204999065521697955919833488927891132520161405663799925384242503856803341185310935513998286442841597565087071771677465180819242537398216010606931414019527575324359765851742289516585177594539478528919065926231948883163111206874106295804532446836897332657221675447762917189155188606764823847326368044097449987160529268150638803229364264618816084101442117705771787228356417451752067320780347068641731481981355063950740538859530908746814073140346124415334656298960233568268597965833467312323394906266813174791255066119226350673039180216522689426165825495029493984990233165579387419732305192335186820765411504480678100966580519532062937621867621655395539949975978227559052939670590711223622092821826433537598848934474892648593724741558116376771065534643237525699911713494228137262173175345244326153424697404259803429222904024337848099975155142341286812772664226960263413796352881032177858749966638121656365581513347147628697626597991554239083065473883856447485938483952912727788467539783255350005149031663622328082734196819323387259660434882166933875886942975204436716307311541028683067097985645786032230940034136286057379123249840859945306926915072499476962387694214466758199057092421788231410730047425424041207767465423535351526796598168362250096169846936221794800921081362104077903051019072220242610854732439903947764252154551311174759037072414739600841938080705611354696508176250183016460623476987054211719401232980226338671589701795060800636638224474419110000444388176882672749636141065012588721783216827609576707311237731826088793005735583925792093992936977557701614915155308641879062763096728100131214228548885833425565805192256488124196876154038953060982068805033077907060488567794842373846163420786433877473549252351037857359212805956334283542109256601814023998484973739603436342046693468987773609249929240508487290567708540732734923521939620297195469734385487405663989761489908804891619229192805292267574338860318842240454354481710022931848367435779827417142071161163129169624434461319834573915694244704467237244785150706173114947413784205041018183864820544590285273073407583963707015539418945101555572154023432972165671583302812181801850726645524401203744473951428928800565355856053395519768387547799635784604158569067421408301363083991806482596441283003592587100854462466378519504377839303268928809204221839925826721933589002507164719380830853771727531315676230228758154829560920636665043672067533066937995095589992991949145294010212932112867382093180048753240261350756812081932488142857763547120234663401170870367092104401586981187732376760972127454053338422740049061559128801503195461894047946741688532728903208539156068184297896508176467610271494704064657226489695173733007460415702394227821409124436964744103308702568993808769472438504014970697394151198775447066025299795930391354459699088695771825480252034872421110696054541559402006863222885475777805611300404574285805264212952726911427630679977885975911945977301987777587349954483708053450547354541002035090226790601344024697444682978897046759679140001274668455137856175284012103004222896066907904355280285939507947809915179472484776145302496151260469961786488521939064208063527660644735008815967298510050079943212328170466226358095244462742743689335776165676472976271287887635028410452152238868684444832140749861715020587054503357705791504542048638187810357322024369530907405845362871858368216042028679969562256615223364401723331115846134719862621809708601465882085920075425830206238360719343653173541830385675661688066973534333391268203368955087359189070698899023634227816441974511688389445237384573914862836758942802098568842371468827437268240177105593275090944403935839207514384492138774061550719475885618947352588428811709952280520388285098648999815488849202888535340831303590566431759463472219566661418674102781739069058172816489353661378373869881862455446817445968502375124279072457266661718704759178894871562044207424950551339050901723952093261659145589781515976385358522081362322456374166465816990910217210962924386609393374062576857159365320619727378998153166452802683729286374362664332564778844432606429725740749808342728565194267466317653470491657410720264392377926034812264158383026632333977770610597012304017627584521677676895763591891423024823947041261962115924951609201317530844506387385736248804670922476868694167378498173890562459272738810364533408875431374309266750896862029071169003932000193034843737662204996695195170199183794136620124377031891452074645485675038683705757992752094736651492526762785955050225352217578243376704570330082122834842021328281580973152148655162518834362449953708033360782342474255052149847520736003196284609314539866605097258824880140459800038915713023503265984261412642326048090386813157439848803090592439955131496666680006709948926281291749740420676273260914705682781432363925988701281170726210874991964897857979852872730193521110747621687201483464388801865156938032213736988577959562437270805033865803679471111927649421309995920726688834802864376873941466449432350363913940430839632137895543816973675670416537928724631613801121842636600812599564200944294843048591793403538794670300314021607664265140477112188586144738403784698217851363075135362405493772669350905865831339373611968759707271140838442593647104822716496901233254617997497895374044691072604177418104513428980783473141604237942781759196529034666827194869285524367667757656749500993698698255866791544044115389387764520694643853120534355864159978705604842690064505410577910292564684105204527878569216473111954522231742628661460119327481828905676383099230706212147125366093617864282661049379506450692691470733172438843353947950572520903961618825711623355875729139237064681455605315702221151445844307012232708154988319387918270851171003424055697695051498154427838081985731293429328796344370256701525997910791880606829072168304945987414793256251541549625293561178879159405369058101198103095777009742458645306919648461150177112826455623059838778077636908496219175503894145269213518637563688929939024138847024247811620548922867309659946499971595183124914783335466454710382885023471869136472980400208057693300376852325048892201913865144594285514345468230179000118440903059955438252849649647184383226774320120850182885658794947398157705210936131759435844116313382673458723251005333736836791779476546944178147903381943865954118914844456580555631171623414209927067084197300707315827399411649398050902130179803361193860253553377002205644303369388021520202537696086643402647289633608242008210481194311709260258207178220630724545039622279962676803974428230858969415546240682433912764207438725200297645070241698782605350878449430146283242176009209923907205596131501915818073066218190782030215198128124056005030579143353570665318055935629862687549394280858227507734399454701535439256085258217155049369100464937696662464606676994771605195242243940308682576598761351209754291395787478347020384517694418719722798184199163902996446117855189770019924088829112747993744336174539473901990801605525543915594128322739522752506507982859394547601162669043872556271149793600446466018452801910477227073059770957843872606769142117665899644692214280894745007527447865856415898939692691321129018034759236235019424989952605715993481987971150284755656842745767866641474566504107613465925407833168341393344683064993002756019935530834152924556024666548531828167125457572721431607369602351131584917595258871463926492125660442645339181286054000995762074731513954351010266399852235115474762215696022131830083627493281873302124217399781427115711502303966131482561368242848463443734628708942061268744007274820892227607287947508839216993723275439919093380963524017804039299848196780990492790305941408831932749824260755286000691638321022421396349566431370198207173229066352288159695800325692041884543897655547069286362328630203481050065615197128137526447788463094573902494313599925378273694874814500138698509705970229621003997810650711915732752629846647475782944946695066416050314398177107599882715782229400884436014638963616767238375087563075712475761424612263738390988383513847897288850029181282944049523661598037476931042389070767904297367520491000461268491415703460237681598903241077970936100696171031644903048914174899478133918055785143351795213039292096377995704443670358886095851417547703117649044111975332668340770470188920375279509150891628462789674916214039426180202372754640989443890935300837900036425987591788932242663760198332973427543424888349746211317402100460507131555263988946199234474137146732615745332054266929648242984635741418849483121982206422296605481169907668383353103015650302800483759233248776508671073301114485371070536192287421656385842558748223047404382160144310749343993901846012272549596535879008286849546453432394673252678256310192891072812816172329703378217258715769456721061480924848365266701206253311129805663331056760215168619053274643747825708068180204300404347145130066159549017993017363357107224712501392372410553197854812734791237773369374443342231968774429791901657267188658738535675319023010253704459396858820172650370609927314868362986230133359617381434748550910177333963580962887902266073563379226522790627130227405051534619286308476000176367573346192597980250066814408981656999763007264984523946185250766674886673014038634438820518054019146115224119495057444700194227219496675780309522119209697247399783626471734591101768726484421648914284531378715252358817220882510190747655683875044662427980582501955118317867400640959502264228648142902839896372778575692154432280261471560501803481956925561166551329710278345697399933377680474152499121089988394329408407990697013536443886592772137500074283918310199672996057249655610567025265271006741911550725666530669579973008494067524741907853816179842225196008551725883614306800898343683397562901965987638021959932069283253320861359479802716321879150970348761712785938949796419505406587686409643361522030786622794889490478387269375041333755673206292361602493350876294949344952387725985091528442805374926763696934542967131385790419230595071787870749990858908190418746523201895274578524651904998422381271127844289293350854920918030182648528617493576752163416216842962746326531121363858641874651416337991815376266534156411529775343936945993564799120407665051773852731129983880672957934596773567947224519451473370619390607764623538599240718040109644740642886328150489002073025653449350664704903104319889802565519047660032325578077774003717526366249465906737757192757168319833501104296509095998737868830404376980323147664794204589590202434619497737009204375631461081528309929598901865613103263717726072354266131951511257360126448494215872471083732133325511161299378787352992380008285456663969296588120936070186886317351763452601706407193288927589873178590358726935313016633395994831025392247822279160543618654583961370668465589457670329760114612006681336854608775988461673923965729427476980054243988846907938085166143538620357758046175625493514950939700465783264009501815862781797977128119704117559600149123197208131055304415238673831577586032628700204296596068685179913826923900861896739551293600603146809316073395920038057115298502023423780646270987709174828194441235468740144197125140645471571874477780277990945607101732653094970781889296548880704665815957591886205578061656660516915517808556585995871818712477492322399866697107560456169553642785477320381282404536105161012431194631452187656919648003775658833077699316501605326499403317457999484781817991377263886704457863117028023974445922427280162103631200607872374083348449694167268336721368563268994754708715880505611897554858564042065072774411009592154081110141837023342668550406666835425927512701398761540438952665002029068622169698732534761640544160273916192394864195108816106248657534556804536275149157626127089283672670088347770325689050539296326648599394626280803987984552697866491651095802377526471514562056527375546584744516083067856367616210132983151151578409841951639783085929235501885172267915947440325904301399821806445627808112696733501414772875614289613934093387876314341250181297881299965083666415460932535488897089363086736301800467204153521851957970936555480288794323606498404620276539824579324780680664811898720595135390587668554826718792344014243422973862876199724836692807290061636200565636774246059435791417045955740900308474283386394094449663801208701046370617489629619024341068427708147940351855594285000731097474735831357149152977916940391624746773431727360122684028869695273355602932194660609805882976664152099496039379729640384595402815922446034692697508266081450605468657038028683107089355477612261933145130949193119163489152750161422382650124550097110805177752818193101669796991291588049489631785137168758756528032315298128196350492115732645409748874513114130544842958559292566701491987038363852448400604738515036202310084727207487266728511374442530457663296178185527836211458940798101594350935325679226776508253503520900812447696793459109903164537301038972953680585840585534907357211903750969781751414214582359896578361556178549370600112189416526755629026043675445652952168135083109809791112585996268547692286731394592705246245295574941928305189963317024473516179043713964268459256260690991704281804051307568181944329615824733515951055824677687408029204180624810472614534055465909401250605641307321755791597799483921693045567849835365450356824596812861661224265393823977087538739059111775785062682612964367908509327941682679538086905582562844379260536783124266876110653525279770782130822865908817409935577560693469460760421155464448216800216514739272459279413276226994431821847737550876156301443213431558863003199617326567238601628017242478390748741093608503741192460316142445356885517581066452574918915366024355675678790899342630038523265046589502499819166737194359420906006687472551495111293665483017439471909557473203276441114312205331388236165170003005789855688305654643151973926095914842559628390479781573181966442780078629584685506178520082902334604663422718323477118244674779283085939061936906614456369256253538541805631785842735531183547620367118235841053898078272073049312522041535227106062626023610255891725863576557549261700048620862261177557416754183677583679704730030963942171474383674969243507065754115534404533274201568203689619256923675012104513971764799530784631485507201603471306467344052083064747832588198474882331030619892774743736958690388495913277738312897587652616395233555632123512830845612212457745707506306272598195107114027070537878400442087517227841000096533701247656056362293437955165555080747328417696379191109659660101009721954462951165925514202531468749703308934415959480046148787760172866669337627817598502413747338300069092469601594469019735085253709726562383653765063888865661451612689653078786986093938803427992761330286126444196473209272293065487203459652923458632796397671548953521584079448163279251704680751674108050194871333936894574866881074260346344429121447903927478598515366839762344608319128545488639985796937248239417953503053139384396223295952738355474434777731424232588312446397095676446534751162610226782494696769178031933767910812745055769984212828180795523045458507701144141632914773997266552680303598135705518925897661044561693418545542483341585433587324673969113723137294561174875888292173704883252043016969660817001390938935023681751602813730132604724927049737135474238831554718591758123458185876130396949275910048179049630587909236610709790567252093810883285079913024783571967980730564166957419155333265979260298082978181589704252533493091733914801560494925373504708589897813290768633272949811956658436809229682597023962630241516286964727999560076742369063457107409873442350445213535086390936356795016248087753199153454272045579059915644120959510968765411304477599078296591291820512862376900503751745795413908041304834192031230651429457097204510350100854823165878670692772689632147229155892019437637275084907200552981751008829629663621153518212657856654145068627201329948716056367831774076706942979743912971437571775067103658751387964669268360468187011867568355682515510650416457550118369750700277274150579945331172529904644174959448882948801498601185912849884790811406867390284100291542133087811766580628217933405391947547616498028402470160087434139237799353212597336876364128852946056068602754603351218213817360053027129356765895049476713998221597267834751886291978950873809324603106422967998854719565334504247548480840824604986774021802420166942888852447622429177513517649760835917693532550854738930930571762175858851429774460874045970629122092810370918375123420899031619871396609978784696770980493754899188115786124106255314011493492856768084282379218368733505635338227112583769767286090055236210045624845130941211129482524334563715886371899853721173625170591983704987859952680380135822377310878362150208234078112542620675395619514310955548827148754424029498521207481264123725777668326461383135852054542774515184736017133314880530642202170209512226244284478422868117977291647285508411071850404195533987519954204356370043128793064518756592170506621537015921418820544349042092986888141696416882865440956878872211883440785786357042427964596402562560581341569291674329858078415720428389270955475570033353236343335705268574644104803927672756261351616754593799544949183410977797785374254734406987855979088503724381658157703187819193497832963055404481590694670142466588813620446417920649778594892553589010791105047509712435531891551613992282521295631676635434618745500948404308256450268782801098332624174051979805207336317360300820001419810720359132863987905974090730584298423995984301108267471632610865548979607934863304267145101249234070554342842062663954834592738330170534258212597262966992278228771359918322016817502183892191743789498933908769748360076546228496129463903441611087393171991898231757373675245125105402750381203669411394768259636179709401037429699160259356652211698422656337123247703729261777818607157321477085679839541074386106447845093998547278564193302650540889716509679100793766247546152101578175064536465340579030540632847108891942550786789815457988439145648449662556376109591568721381778739315965198788554387860068203184105419322515945622456314045067101291625605899488078635625189675108460571865111537821691510729909619972031586162009611016861129774848653370912663220415426395636826999659382605950369456418727622378395738241453505941420025817418853071715946361541226145121794308074308601059485637459582959872846596063561453477189059894957181576998545453799695289794507674767621914517972373023536382394584341030530905808796969187777349282334513370938102509349489569579126003067426756744980791263457397575975306967373887737704926983653888060451384062011431924019293508662561964748627531346842218896449069205569646043301624506206253125192373038920281938192797317933419733449391810127946894555008899273141186298229571945600444565056935957485800319210773631972102001890963313503408783653261415783880675114437176418971934458987770229644695207043938919441106444132057833839517347939981576628923309908574121652646604032534709727674896313408832446959959372665505454407139186720021584881016175436235473639590579984442487658196885563472974348692485960931972907068262623343870173790026734085071540235647901132825919886643461502667705747601198431449487919257990431640791537544447514659035308780005628428779242232292908541509906640807644981193959110866673394329950389589437735550288304577826366832803944787809328043583159032904253078735629193517431572335835583571264011406492549663217466846377731850482993459852365829537644583762287977705090042319358320984936496836104696920403623929922915652231298675274669923887274653680666624092501645848553920918522742290048078758215015961169190571001834505070969243558711200826723124246093016609261584645630013346316319709368111211190375018126846068458511291991740184104452484772907948448662691834961063232417741145664082912264023746928003440866680143246172792627169895678878591093807060550125745533887033791038013908783994529091946471509809185697449781628236156415619390912048882074603095991588046386130676283472768549191876328363047892283063593140471567126629831965354053393666488159310335078767044446015197056404410243194588699531755354295116942563277034622256156235096019165427038619836517724883514651596388863216389066728436712010720686107511110205301433623376264652453068794268720062753070025813409485009185931839492526925601793520938578630675418470904093751386365283648613534368382262018314482914578634818066319611263179152249450396109589922520403305431145953856396482025421936180836423284575557273094302087645279967236232562701508672180997448225362813478833113416999269095140844048794668585361238718783959596359255869133663830221637511784452156113014637367277068724475131821469598968911940730331339960811926763462428563919244902406749807442530894099369387045990725527304367724010017350890183341766914191954671455834090598440034567138873297552414738919860395287221628395882390617847612192150963399218598036523244268160388200077549151660852980235748885248465770560498398371948219539873193704989270040525571600964043779515743784948328964228420911943257330323771727838742581459421558404387007870849785057388656046148036642009904675020045930462934319817155045421465267865348326246738842137905052659136395772694261614125700169240091154417795211814385572332014260541002468092194989511721118525295804350078359789397864531578745239263520824173515750069233650065012523410807773788526543385063500625854066008789716590252125685403642735339028527769630835597862815606783246354041557871160951753222103480054263577109113962894109264475527574408047992968454458965090605912801351674297772469954530159951479401315367656833592547259704038033578018420411483375641732013509450759721039228690836765783439349430820821548823565239031972546712017781930880472564007835370096893472939708384689668797998135806589665719324380163158198560656092357529951335706511195781542711913046643814743526245828971138703186844306415366824662227021371527412593348626488598971482991124783545241676966248735330244327323707829677973290423199931604789569259226436039762390656994844516502023325984663223579226050234193711306566107827246702093482403925683557410466389266306370683244165886930260144166992859740678343816502952529723633031773109919148934026643323796257570795814189578846478333587539460344725786082113378236173358877460696724383240143969668330190622883486173324491226663705714806588530784192422707872915444210419141951708867478498375675821857221327253065236593974074553508460974905247955411708671424187954699422269199987084888045758888439843109999592138691794328352845956854129730354412932023620026083185903993334194118102585554856562725360937306578789213374253516382027398883130345352885124945051918649211438163380171783619387925046839231030551124974461481766037036509836008327092057293334091046144543389968619308792059461234181679899459892123980504665901519349410520014736682889189114600057116101554488673916051359051029473447402610559659799090765841061973201744819550108019770196929982633911600246615643467597596491539216248748122803894296397109246217138551877184981349611492114009454221043759891406704326588167974346555589102473953949749384577105215746527888645126764559582113007085886216674660092435469034865759051217615269401771509147704248504286430976674581131293551595962757455418895509903744775176913572987275628901070072175824119733897014874432759282059448954107799494076827635800000954820061286826182472413669487709512263825172387355338520948307787467219755672749827473170244579454804500852640461835325376061470066383129777176896165303885721327357246029591158222365246829919604871105480319948412323538789034150077504633452475056403083652632421658562996706145610470829225344200295912609111232303511631456536720180018993147615210886045049242599025410119118948390153915451113383698264270836466013736832527553943659714587864496065316778959720177503182299060792040336574944010305905641975256548590669654124094499834771131056247813679804491511423094258868597860537743451726055508418047059575370776649662987632453156514511977650983483704937443887477852334944348001509674360881106202434986950024997593969913902358022228692282326255598861358495975320891666436757935498001321720359920962797777723298562413609355706383115594537688617369800160775193739965690760094069439533961542826181589666646570912335606653046319554995457145806186660918695286312071058006043453613320021543454761267545481566642882838700227467000936119759310395555019927853705908105813282699696245379652273190482169572520347568655046658764183245094554480816803337591518991459204631643041291998118557496204470362863468501684923126607084141516807309063302688400930408978544466708677379297074329390544837767066907094826704403282042725619458429439585329824509700665934728630639892703548986499551301964053106520665828897210633244144852970190599747429760339302051475183387223643472728539800030888171625871313715165911103523275533199434164866180260091740575456897055820729438841282300386164913224693473325800559535583719563610862473098279438094076574421282908734165581985819386073762010416371777640624089012962425552101677198150548107207834422987829764881851102930086977947510054309055274846247179675746802287153739359268849842600128478600128829079770237656163777481188456022031796801686792409439659662068786140658500705925103361545110752950544760280030958132832928264223299852205124276065264137519176967637868740826403047200843435534155518045233932991082263402517100966948082677916219646893017933909647765495513307870135544523838223085530350512635728342830310566644992906657886902874593735660588695546672652351256001497141653944917947690748904214430001122701597111033120115045289065462196456499811887412229397376575047996245188900414404552896128247974928652666707374918283018245746397815677323606075088223454011718240103846155065857132570059492301746018925739536960680416238973191784144564341452024847507502119620720836637393774761247873517269049825305247268856759848004932869520245613003588522448228578440534279880013601715348867457962411666293529537684938037186519060394640639558503263424366482897676924629761154758997585509383456742795394041228210631126478226798442540604144995388285942903137992556641220236008283920536418094539978045317794701262471498020093257350299713051168995134906954235867001012076648070275546654562691507310972396986148329833867904661669836187795671322371642341970798946681260837826933817831862710610885820564820506456368311937329357512887754316388101537176112544745375454504494885397844740476150658174601500917924675642300565312893926687997138792255767844827532480091687150088391740098103694422556294376277945493032034620734490210482935790678674419054264535641028480346061003907931057825672426206463999431944131351061332480518708397534364052249760818785394788768552173951508039850246954950077077002429786244668679121228961335889461998982650962097811173397171521517468776496263291103963835138606467028453861532761539890979758071518512449438070229833635233621879105993050189686973369214059355126329803460871128446246201693539206358937310441681011523952237038230001769114934102896796394855254585138877564411846904269549455557881930767345343666868233201572854224922640512319214626589720317527055174147829258468142908270191150811738224620027557518557206637802694383950091411540268740365893710740466393505433137940867322035940545011946527197250579094290638404157560140489317160556194820156329617139358001008256648613173412818174530567684840772281298784493785176656581665074328371702378512806150003482568136166059779963147242915030599872963780863795363140296339213378360929829304466455798598802657129127357858055538022005673964460918332175431359368589194896610965043829881130196921470407130125643824490185247137748603320839576151472556057384792250104124185303086167943536797947086281052669356678790537067579576679503816926656775516806816953980411167043743218734309414015160363686902180767039201803686267052518417358875168994499977611874638718906673146919954347150863873026555672920916144479565793166035372968532277864111024020027334743070900603387187890460536734951365116574422311837543978900904799108468808149515459707398719237287449480235852059764781528558875687501551868480131844362200483726308968674069628173001147554819702704660536403578827722000504541587086441480295663025990952952433428867446865379308854052122681224143462898032870097501678169125296235205690048388196682074752017912568489220097669422901367900404677532847348235711644460375301990481250282015394495604280031438128360747950376029757014107023519075561456124817365507928197200066296365346373724787832878041029528531696267492668236107608977736542485683400787506127583280152874376976263356072316810984305928285417388638381300545353166455603376298295601676625597571212385269557549733914256274768735597780223507170622162101360816349510721703763784833070844124069925611736767297068483656726821685571724691562949085980340494139561109707453806329578227518914249394646661068413982000149309510286860158349895909101121760771237788382200820630848062194910892560393546172400057341949345914306398399310570904331420975818280609891093855699080655952827956784600656843070854272388053777627650094404065781727916095348663492214706944867383466829274011569168797157380075789856286983772030655235296981844653043024780362860173290916897696153006249620638744196182398401475071974309550613854750154918401528132860337065344312858769256920437314607909222006775626859196306964938991735613013789668126338774813029976480044603668970932336382688545006293734342544827599366097884712293036914227476722240618055002666617908657203354562794937796439644738859432983629691239757822815702516875639048714821479567031665426369103725389156825849074413393467822471646727716024012432522037126254766382207420367119260120290397530239426442156573711303745776399912453351081182496345332378346765431090657827298942414357195981955953422404516498636919963459284334457634590664691425847621264269938488020047336969693886932391105234822564716099294518669397402159380397974858177175992376591429055558318944277988476555439985560404731357943635143098343662420114117520395843183375509800205744275853832957849338532801394528530001146283502196275384160006975866572120193807992803497027488124807360299626476192112973200352150888199449469682883517170401376214774164715978075118266360087180709296338687620053345458782217033376898410568526344583967169138436116893784370061905101293476759376005096856636047736207297117323546947233813962290659821463870399091923622510947978169126917880433203777858117850412062581329894572748161652331680525190204546290722326870968127690253811631580239689666349071588518483222931135989166674890283502124111513269994069938060524350855942533780285978080958420199135535181792509345023581183020449844927983228680962592946244938495404387057111998620641617247303548814937995305209900625547407346279425382861938405702033402898512159439713954076523775969797979856329535397770771757136433528787175077562242465647732253800591912762996982106339250431781248108600413083612102604741873224644775925553363959715165400784746109174333683886254728539843868396831743705655154064140134174785753800610141443500098845176786992897304898547796912804764328073413019278162069870516612680995054814993670368004519306268027053001816606547484387988010038775847717635111512597210945627256094486842787627138835977242856744507208882196503145274705278522869210613924144210848287731075159459375451737737439082953375686062483928373946845767045869429072251887615257263319731852554702971032577535520498001037407558439847661986244181897794774809536855378722609481397752422074139151606701541096558847835311727583135577505908787407501546370548930898796326570729912200736434829480390612636430630341393542601312521493823238251826285994033734635194693866195467414323394821477908598208203106645186748363271813854848390341197463624148338980538838677379557611476804899342093516379658462381461017977815680404305898420781451950187732080863079319693504435132011218890086132207635861848494236475331607555946129150826536038470128582766064795488267482877066574107186973472837539704541563936306029906085073428442459222974348582580945243738260827884425801748242604591897149510403989134874747261411074330073540053221142453039163388984007173705576230393972141735208417956884917618195574286709689707900075025634835981485822600368362130109709751927153669295598669234073853506253924551660419766898504316232723763874347762141144393694978268548362422531699672021775333265792367408963623762045504189931518784332570619795265085454087768269754126656711089688796477704766259413080786146704550446497253963671478064295790509988510854813333659398825920275650083568912256518111183111897249289366340960582177615249064853438297291614126156784153357999256362827918069388970508041938472127243468006124008229873763391105120939034921811463293872312033110744186493248041322905983508639632991230613378865728624431625352505847559534892321416994582270484667560199678176182449752623100887474825132402496276371929257042871616755726932873582369700836814947426306639486295073717155804544462168135325043411748334638987820585789369032270513851331701044179699648157007575768700127094640278958879862797903748531924371565755202714073262302911701570551574209657141679647203682532611909726562178904249537770377506017577639337630936030596104441005379501426595995766501384957156144095136672362763377556778918087675040488489349267112884601956847135284833894960619252643082490164839385027937978090722582703680949317592121494089791850225373141700121070213129855897526557287159504260499277247565141670131042793945042481623468697274882003158920649470466598006477813732627073839819314492399195322546978793728778988025230248746912579020231518246455804254796828892441527220474718843920343019090453743149044639917638256154991622876698204278423813976784003193443404298336008542958211267814242009805394456242710876993296063539144392060069892173061697018489585743559286893230818628009612519437813329106975494015471016036082622058426076811606226516575891868641521292656364834955455982313988343417919828755121555820427942523769337065671274116808109486754414392511530351691149333973867267014284333351115222462910606643683362875286879481224380533762216658808377929404644529113253892202107037259164186517874608490468979249878215595980440024135435089479876811578504528065386142081610752632920758162841561423747575128598121011194477872080375911250776363726453509742774163341467803604895986560502482404772651544831441633237340241175833876040946983491258615697474810528263700143395453951712080406411934888195472620480170848503647442207719228965738568478698011753586699723388396047960266742919255196939531906469789304191344744018112058351558609214033143060316232148395196794125499963244732196611574463747935455903991595663915294059488045152451345358843755476752719426170145649396518524060527574816673603116155891048555769003628538913114180057848308534507174406652410650580536868948224489486309338864373041010348168441525442781072647743923308574145370548408771792943920062533990394104874854031193328075860744039598120647263680240492534411519240081501139742090510781093783138677923722774528463321411014332148558332030769409491046799945721866408821435402879996474448805045245229190230016074980395115481689743707758905714061512888227531470356762340957547184691594951986001615579591215824691757393130184033997828089662383310095882307124508543546356822244740762358766988825916919990339184157966866039456373347689423172691178540040233194364868619927106724500915058695053492173556979614451025726509574049373842954109254083191433840891095459080544896493160135012056797978487901863259408456554566890162875066792251778398199000241121309959674901685167524858417021512921359482257324887753277753037263289447334968825372484634180228790225573114074647297427016678235916200149930031746271688885814047548011351182974791882786363070445578674426039519947145431666958947886079667622250291367164168243541073233784066766613607576112776264655280841240325948615290344269087759559888096795756287588504906984006514397891771552992589750347763429811527545509953995858406660710521043662637760499592937051297708405401490826628365109465497052121221150772297550963548540017570480997275971973625154006440926428284978333176316264050011162000708550675181225131244298767714402490907892772645119117831785758032109697284429353559790081024263754667605207923340021893804940104569283015049442111774952115339509261185790692858908074087810953459935230300298889136343472590815392655084487026708518203111431531199136893786043094461897373803027366301456979999807829121740799393464497143042427565700591362779925804269758391064578636167794056959880048343647275204112098551249942257608581837638125785168456659657613225165753214825916929552843346010646397912384984463411709900698449735915250386768644012704359018326028452760210959687302598982348026592657018428056373050663820693148297478355522722805030833824474000705028185962621660233226172156936606811775659590259408450709178927729681955642901703750869502197299637631374354984857888924838961056985404663491390316307866468243336107622513731178977421590037082525508679618327563310678648786224085243314336715240974686858351010362601869708270298227479863677090846175962706921500784415605177195432189568044900212956217502074926432416086650783625629820419940571138245433272750003133201501814976986968467336329288170317998700816530398234437043979022652441717052423400397248697139102728714711623721847371586786236992597253484201742825670870225917423121842950988405398554903807016507977514699766415449141755093657655593379427441748621851516156087262061916195512105739141918368123096866012635202014596128494938002039422786743218931420389010981777656774319723903162811740988485803931402220733475548291768773491174790993465699780653990046516304767086463857425146200936205364676701997853610982618746433782243063470922431930921412205581940469393597660831276075951733625835517433357614911834421247332369624975559413566827875738754146976936424470659475102582555726562230534544905189359080475497134410795874266361951166568365380800533694442805927186090886395787462726399507300855884415244533904685409888237214963196879885543857025729700253239858462120159938263330962310451576781554378820067065866561508185158544352209936525287265436510234777629876754673504948184473430185091610574312707575511272326112304691731141832391945433758884628031125204156435144988858519474756420877713835618390903992332837379113631162668884951949546242498671099550610317134305163656571277566983162103298636152469565557938619896654039311341531921921354497670657499376982816289815343229323977740686989564323557618651155441689598307520041004745302133872111330847705360943925084171761492193493050451250112908058866372387903511085295380751174401086561895416786031602477576815552186721361348396935972182728538399679679460009460188828287692084658535272459896570258251268673543101805908579504101366613043643228982730340434653702800994687966236619498006660674452784545101806084019039325860793902155638471382023201839535410212473382928381058893422695099223588544144107564882735348798182751178660706173730396189891917253539615495360358781024171975729455604863863017899252660730541219982765675740464641346369291060540999951280582399798969656428744102582528913654496370762638163106827087985519774568296504252022994182550096138387098663061793415399912834730288232815862091262245935394348686287029542158696362955951119162535010110091498353768184729297602971115276586097876529982610970069675041219601072948776545562278795083686848848677794925384382923331740950375748024361812972952966786553432489150224612144966820566836803263851507180772807264377945279869508755188489112083481347360958666377227850779236330564460925394570424795888348547941351957309049290899040730306745170009413275064411804913308510375301920532543476867475636817431655640258208747375551181087623038832490618949154231382728220548762293186593068701227036278477882041807482871437997435979450768473730453281389785179285532189800297630882941315167220582998062775628305584487893820358564315266617049437193432161744808429542127103988501674230269401958746810767273404969583691708169115003097522962591527250361722863225855552485248008331718617354402998419540551778305896801081846748342979982486183829274012494562653506697463339584792197292928096549280764203728420350650043339971706638755307760609531470595228902076805147225225118100668189281154290594363468755513879429644941064837036109783824221404745604557447360479310948339008785308160791748347149645107985788226900765386923498584949365203542672629755644712354634211772965188459179935703753280993627140105836883013619192722030356144065658435396787392066326123643464459624197122678028042929038556850268802436576934927396229209546819150106480787991953516258952575213211483823307970962598440128876523702597271653750244371898241733465488065535062477932240464660034814235675415792346376361990280802668358747625385342604350120159214562156775547034334987394992703507933103851066809171877826092567630631006388864800089848864480649362904400728823098271403119515898115425348471123350316271327566593447206184986443954124744352620269359191068619803089598909455196063637516284810432068238949432788091737978499607034659381748855870232267467828502560238324464620764245293875997919538684948953862225220207429338174117080302935212418727900164048878175746748732051342868174464908188587553316709809354107178138666001278719203036363490739097376785314743789912610468740372355883254030064550258472230121792910058810586029627550116800627333165667029739075167185496435500226005520740141075963589229772732988919869938552081459504522480539299999523321939527025461588102177444677061433701541493852797534576487139600420658127331939160397913714984172385573603777280313718717880578353637476162461947272751523969306499665778341697966222746830996481941822590595438993827269160399377353766305979349794520661056371119508841129639203645324928002455336468201967425586813043929272412274741699656237595274880620529231418113565268939678996470882454998640831190522464908734203633307270587786878322463224905789344910357977035178361604894760958263335088329830137707045366153566681572183839448893310763517092708301278584159854051019431529325010917558299815457769253621488647690051911738016936975059614081131933908723705490313725191248918253624727438841991233627626210303046905044168051817584009293802238126540214772770501708725121324541159017521218843550969093522838807287461805083962086615782365983567031850830636730694493893560585899782189612256482146339385032745908883309070326488565212491752376755261560618340442089890376193989576241541660742534677928040625620018551855820328072983698643413264980267882325056450957715814066663194391591221480957411434486828127022525340185067076370224905529410379611883251023702471706193796954817708124523794899879417818573277273361904521158617388806476705301661287321004039660309640229004676853256316423341480989106304756696923527266564899990045956234114511725328393595931757741647607842123239158484256219179770721663469709414352564278949676985223829153870711128340733594269570871273015306636618250288537418014469832343377089167609331521130752544594209126203991132334511400676224200315304072877844779181847143603988859280112129265234329892616557139852644265426364008877470572185299806596518588310684270011028890695482682785406654845870400678487434116144594675649275314281632329190822541532866090377898942835418632867685229679292730136652948849738301165994102584666406526664649184199282231022313382978913954100734591675744407732319866742185609584699873000218894861536992450718686851322048961347049721778769896037624192622729455920190379653260211958174159111939528446283407849023807577858881451195438156042615141168426233000930855460940793609097919078075919090366256416133997550629061671261929745956297047897577767842338208353272238392968083804311388531552430444550330383908421816066350286282196961554235455790826579084935908730062043238190036484223354693790603308928153548140547743998296917143909627350619791673923210390904843087925328756508109467348356470464652795112415441500380242017927410603555125072090520458938589801199082201347527227222567454676854355936571168826917154651003874729518740808569142324858312305489058041136187579846953138637736955228693247296779420882460696679652925761671822085099270302191014696554658765207391534028534066830678402873154010997092274758243053846224672873811397787916634272241237288551598260035948076336878572081409459091528532293415060383891229881767632332548619296017045982528939115133667094349631284152565168772928709710548667711554906524310896772421736342522654094630614668821081334255039880496196437491267700977505105561704224186897344862124823782239757513220478066491516113846617651519742385495738519090747902454252980290869080033622547672570948312818384312131732151833365367530213427250163498551256969358862764780194771002964671305049499727534638520054283013004329226390316641385626538448081089100409809967530591171138279470353299138192923472241456298082991061785402665682860974941713866340075989657949603815088120872546032464974454757183270216268345428523928355899289481426058754557127434464051652288942044882467703025429384638320478984494467030774606442216013613018630521271130395169662682615781722284540767140676906571843345926607879841468897627293577625972471016216526095360622621692613442856585423863553762153755026488910843339735977552435990569203626905547494161573678657048018870425505957634898227050469611455813769543991693963753593370244940065413857351593718141239915219280610235238032380438976055168070223629258659805427350679362517408400130256482102915319601482042066139021674697895755343865926322191285817754578443708265865715919749370539907102193118017942752569076517822268358660324323234694796201199360143004306800087051593495169118816801914768517467241449800361267578659895156560279503472544745511281912094345337181830037590048643608513419987673723431076780796333720625224682488168660760919287316380469997704702826612781561601039823563871032578321553763879715048081790953361112514870366895669092017453054085611441464096656299869267574535729920828480667881982709467701774976171795776194490594870576445189378655138060808368838520593441694646505749059572982335419377310385467757299005170353881548340986668626564735666565556650169206017463358519846883696954907922208679498521732207192902476212854986475032988388611826387473895260161777751300035712340453040700687370579305514904609857160618099274659563770415398869696019122014658395148479804585113741257069164132321632105165814964776147791170983297605494672758623793361736587898642074620237220794470155699172095139174465294125864598620575637457453106411192125112996943466395802138409882227717239035978578609704058086544309543350755680818565043745072551331448012954436626441892661584091516686665131282648324644819139104289258372964014663541655418545384545299480339940766361236715977098766362132070035025211206059621588150431978426179478173332282642075561875022043093890260855736401507865462581831128557996608257452869164906560729829785250649679584793488997450835618915009713820004061943811298170754929574738008501340331303666401142748236918388312539869483408430185326618021534800723661085268389497795240253008081171638804237721169435931392563224080908046490144415908316851537535138642270794151663593739122054446118650899375195465657781818186557557853269174540724220963177436987322422138736706736225591613494762804908442074472819287954717774115337946369964050451763750546780398527578861720633706011409945144426049190178550317973702627138727443942106871448334997165301857423011454177171281943188556966406502117258903538377552093109211018826982279254586293102382909036737872224723327070635491998076388641816183796165613184336179703185602714055215742434056681895033037079970172272623651870952334893776315416542709203748356077797874297112296962694867260412443681111047089076977819731363641578781104232860247982091757719436024697277338721196087953778116529657291009229145232758408682506625679785705673791467326967878901914073876004109348255034075256665793996605270271252673753610322020792846814131750916822688803298573848910940883616859840145700501953930559323709935234743777909332522215337582385628459181095199494752473217299812083604449557288581976162288745721160293041720357514792946710886224513370403100664763059575275352238929006528616314067465348177134010302172842608818427981863769693592211355334980803228507986161495666452090676331666295804827830430827535791006699161361771161999118529555275910669265558718740297233875774519238369925787294242245198320613328623961175792401624233823495905187920532369264372690709854156766372603408955182246052983823948279485823588377373445369806399499905903343005716379054808780653859863114764212994259942235645989724270407686598968832590170276595156030043323284939332937094782297599686890940106660500182499773213492323763778452030127865655763280187229964764813814682339793619952522040549354471903206814587183963743980536166146538746283223823566493539101254405278409361570755588287558975915727812777363623646263692800221679497517790278379633478481673908960951313206063342428392636573359272104204955955259418686349863553627680173368456388407911194744573464641824873739848593653037053889929090773451534096511032579934378046745336110042318524108760958698377664773128904276167318618829851216425965116476242175525660987875999330828844048030779863679891632168731796155922171054128050330579855984162348530426041203013851521260145138676216880227929162996319795577729193652626615990767602699497272442319043681338866729362480625270831201961180215957297396750820175433010328381439521132337882867689798553128275852029116623963776300296663624369247661375324404268808520290764914019996782486523245278454086874490449849952660077269177649110910396028817211203575798235994790669457482935346075755602714775206415979346052384335490991208547953418774096020208150647541061710726975356705677514998169874180664878316632616772580958694330059459700281733323357989219516264276503959381102973302911447335178674911648293558326363938369924071508092739877204870853236701774379197409065345779395588570099277062603201623671861468177231148477117892025583809264991448230302227099072372705280834380693117962853383307478070773303597054699126179920330517325119471745733583830806419622093947799432350844698621653232010316424292461003335357316173416384984866101728046952692070759391222765358559094719400104302001900312237296017841779691711249375472226012888608129407340874162372416871652902202502504612873024544294700790644977591370172735030891948543218167713799234382885737818770735845855257851981951209030546606304570219634238799079019871625815984229112720762637007078385914208616943769063437289062715153614986664962968611439829643219842265390117788646603712686779248126112841799755192288259781505105004325148807947212103744679117395686261399630642613883629621675525940282786026721214256026824778838405626868467056495116725974987320541773932119923343428243206606810243723779854661993317573894915791694745906192481132707919549094725677414149516805473044980691396715175290772263008352775688658696399442455291059241426682162114727499777823173084998667794689371236178497026465010227637717080661823879117773116542859344674554368697120283342002516253467970422700598046841130866010316771763597546248091493255093310092136336224381054947075204419044608490711102622025961368333254486676399942612197602324024588635808816370021593221975140963035955485089820977820352035599517417592620008846533815107073297914741722567535134412700669031687542089178574084732196883216046821395368494559553870633006119274184458734150929630657692215202016861855392953775978052991248572044744709810417993458690692913974321463670154395287761379985925296201310986006090304223246533457400389421707252609019086167359619810137548907113282959282105687831400420959627937337492547966125212218302004389812712623575779971073131715549802774317587562803783898503437587958801337785309820114434986787863977054292910935608863761564718724860801202349662788961288834814925333578959022667534703755816257077951781786810246451818361334320364821851682943244392548733697109098824951325754912789191773192341420838769591472334361216142562380419447845964495359832311488991118949078949546646787393194934503900967108473408546900115125522733701364944853561183809945420070025596350760952473678248921117838348329257602582908886567950037356980756743346647313515589371566339239652306645932007873334857596283397289156331090773278369626539125187056391791392765676439014512996866018069331620971759759764526856337997713285854219124609557111598956241769970640055087701258438789974053015835826946453883257256374788007526308842778879227585573393186735197830281824524829648844605652692949658483666710498991852768696936194568844612223034467581189277377011332546224587539503145506544133117043274584811394181149666519720696784235651799948564532448911527598944657032088586544261689384422519144733466898006556548668589842064207709990629662137333034908451038460879518927817231977252646342972107204138887698546426990177762830978876902507098137006443018450087216892903586860198430627636752920300664971037344259281727208016468031647792320119873702797564600001517955528565460143863556434387242465853084297874806902843691393296964244378203550707119236822894843289772147280876247469100776350197370686345384935547142557618651529353112966266331321496778653819656944148457456902453280447932090635825571113736711837333419129780783231409706413997490643658132200566020011615022861750196724780344987212920202230954967986748629261351374075937102962083925013153166278878742369007498340840939899005676599156514597320846562341632032394535355934959078604472437246158703517660379761601965390084600613884347295520793057770226700094218609893375438751698862107372792898533107223706193979882784148651689324735029654061825664268907404658963752174639883710310666796651708920456161792943197504496712058626565039892300820403482960837909004679828860538587452139524895850927062528713266968654872539432679918106901008408030415271276426444688152307810323074835025180862902216310038340273856442087727116738359012484488219598212700400819148334414260729667748892994936427103631841016429484916291591691761812751814751610148997469922274565949259190811681609081273064742101347580336659566819849607418716797596941358037893896349449541288490971405143301746834302511038936782707081892400063583761060909920442563880370833329478059811204488438061606110772099993249366249733449606135043641755650048902221310419387205774940651463993669483554967252331211230594378203052978948560160441985790915103900485024023676807042369836017083352996861910486262711219440820288474329103139178629986297557163634361037016483083262116998101401225390452216541634498303190730069934685353018274485495885286860770979279110941256429279934520163044162288897129841248728791317274320264638884770544601887915098569559904060826117218285599655381794117750455427228681244254868221856753246038708127070977461735614502851738503536502701167520075679438464497426067476932855597319373574928000782937575294268954730995949006548442161657587243103824033662129827104992247575916421724566954667136090266136425999968322284392419115179452890006995870145621324353071470729733655359567447588953228787466708838825440530207823502994044580212366271439967507529840870998219363717576820804990569025846031061034718003419367623751211257644916889751131423626911949953794214523592997761998793638240120415993682143687304362829112409433844305640286405840546833044877877329075581195096779941487323522788462815672569896976159043870842633301454139755100137511831758414845952257292222039338981037256965446203671688154467234114893143278844567826740209581273876489188309258595301888616149544186845986106808813943433422706102356665105288151450309984330755322070358909327852763357358213152281319775026613832872955071434505239542211535590366442406777798132583800093962882475958646158935730888971313050223790022790851714578333792380070539053822797894131837681241562484481293172119037835433494134702864209413599647155143053321718214330122045039642278147922024738039439847506512072529774845381165836452442057118806498150352049916159431502675156992174676689545999275440316291288916744324626194606582120754451011819634320156113586300498993694547071923476368975448095194680154440776480812009654651391831012714328872939809939338451880371839246351797535265609591741585928082754048305706679193899728253645662390149160043241241336684942355872061640593852552830986463142406544198161883485585086311258666967991224490573278138452417609423447476546876824685815693081649660167131581334088945673528262626783784921382463699216324601213776636056334736173262250784325876684353950929853992198630308810322581520626663229367522798048681791901927931113859671196636862503430743146061330047917094951975735340678901941723702537543968362305126851640620582960283598844738829066757894794655635380339057677315632524953810854670617778141234477608198363292117957199653495586491641522167311109392864628174197589540560285988238336683722482513111932155722364645093904880054274205125075119669955398779668765608055647242100391475303103282449458950032410761628418177969896642686162878725697428852553297967065698283600524768758571034637949626349340676599724561604881981833015179333622647677031202277135881271890681963326715382146187228854860596137490671677629418978861755932262638015440049340361989775178685914071796789652513626273306831091248129675027251116415100505609960594136877453902210717009505094212711441212704809899348500644759656588273133926610802042873587822435005810676919835000378177287207379868225278157407020492574472128019246321463860037929695607278398803423731670405776433420458984273940734758174589340188024226504080063279820697958997120321576561187390705791158966664138861908624080650770198241920426783775610037906480687931018024751102843644504845696740028805669697941841000576424884836809683261667393690646582855168868476869914887444108525876421516494591193325732182002517048197471379251035851953101161394307278369301249556626446291756775258633049402688885641698957717139443626295748697831961673837438550417649855310702062705538825952345884087854380202082424968496030439128685563618952717099200989493158150033162061428293412358034059921759827968404845240587635133366813350751730713960725864619494355119413463227071334498434858914178617068261684039347129906643419696499493859712596681400893360293085342524210050502808393666305416771245167209538778625560838551909760698172501423666673202821793288892582391133132530714063910048107006765732637780397427372275476923412231467566394568188026069935717172186371668071732303336252628890076346024366812570699035549869447720556226881173938500663151290211351825725363251289622452875036919221563499435363839576070427841452683586830913722307371968941621415971252488596813539091884227522601008716686588599260259795000579840073104919989345879329955510196952690694710845227915027660499663218454679854727965839328283169093125828654257636599328647623413854231492276856626376901368124307952095503404292319245295902166135351188865389234684028860702842491317671682342524453900662445049957828655800576989193770788497340849364518967811941207107665394493722471082983601252538325487292786072352620712023504207278885318708616023133844848780704891115041863555135178704908589714361749250767649720188076666693735145537711035452436368143727740074444827742853719281223775485216372717955049294115310339906385250528438004155940035795248675143611826257509189819965238731517271592766606728048711303766866313830333771439020352795424524667711841283195034902324547940183326679049597951627967548192339637842876453746611275677943732914540407690736024590715075601882717904247658414047462097161973030620094689458899623878371716636246317064972097903730631855905246515282883982200173457480952018055580976632281424234124398724208428112359897977282800871647636173179597400482492880501857328080342917197878019695080722472000869687381431167149640454490116587521683255680443104403096112042447623629247251704017621532082365304671134053350947638674952793606594153756762150536747005108271178562961057709060989784743869612153465581266181241625273695633441030364089238421361749241075381798763170459766945278546945125385106451577247875233162412821848780673700475936716347230428328663302557072166686205085194499818602330364835271923149415406790164918581322226031472002317692694137159134485273026689776961179098013326454638452911267636406363543941001469980863590346687811822340281984958454864131477316627622622289351501120668405932475569721295744011423113212558472564742627906282669633159583137745784395048259228861358736014958088840414577335761242528103750972966186643988298251587853348457133279896877168201863179404464739939775692389352947156615640681267646265759104475705010800969810787242764635518073019909268297854514576059553348839637077416878090029528814855024781056836621897663068152823776503584263634492140446111085609202759832238191556295517055218990184302746873446336299191628524464408742131622224309054972287530741935597679502491735636982531029184100455096410247763244698243395003661545272354150912171238178088896004287283558056252918652749028840668804596469596171253760307510387474042382927923008619511159560396915395604769359116792420931606064956258872497544157757733497500242207511859562993751632783692127811822748053508599867896693775427431419771324273676520222977482107751639131745527270707260668605051743743870215655121920268783358040651748383831716418569933378246659934977312151394393133323146045927071233168701458555550297783430828681630059405013384041161118842457364289838228272567104290580992920026826451700826981515980287972467051328649199525963877294652268376658031215468936662469581934139687522986201631740871304574675994701016240190240665595011404662621590827758107971565645476030822155695183212372136184528106984159222896136756998217038463208046818564577773468085121266140481938438262017312793978086849421738726223153452369192462434703467811658123231159008875517709161871330886184447272777384176203619280015340124244749887188575273246926478411946363298172060299442470191549062599280229539232585406091063432220013571248275392790189988338341255679047167618585392697482831484251204680813234063881344623957428653847128939684763119346061466851003724880956252283021595974792140864177471446372905308110337750509767522508346623033165600554683349885136457022088443913676145185336938144176672091272205810875704227042349893764245688193992977523754590981805656240397087562085786086614878054107908121362111442210838395582699297204450501951864457080785152356070764241317490390552620497374609209090612100075944986332302987317244788786868052576825111204599901315900054644123986402017803080392305564029479544047954304031062426737686650149306845794758269992170967823397053208294750432532802139785236913563221018727529749926857426771278446646490460338063738321603553552889754833934089028133092683149005704466333758048309863747520791922928024127202530144721477669117236710923118005231823309452027893519002687784141956212317549516164747269931245629012450561027331541869905062010670279633926593217467638556784339818154339697882739302285817064131434972495997693040266359604994411604820334366816340921996283606638144470198909677328204326330371841178756944399570140818380637904594279846422855289398439660448571554036867593610444444679941751910627113588515460144668081398664349290586585051404607057908230497601128530490491187749377594702649221667777950405236055443589116208177126121303779400835957207728954600566880737209958189465030303183482229403166919094962012555935088386411860282517545076661586704722759537514895386675201973265114736496038611407101094664336791664655921711663819127418054465765986030504691235667426820875132436848835385235322328347020540346151167705438908564455958065802631924696011849469174877341648619926455949789014954638886684756694019299635453341581945401072561308614712801343722715821497618430959775331918956645794212378316129881580677976707953305311282239377474046951604083728617943392666682175865667284346401176880553124760288343385335541673994458125740638832171712415305510793577416222453244296828713389884590090620348262215996555351913690595771327082999454244961676025900717484747358684884873339644888220962688494959914453816236573233847992968990392377848519867871749954580048435334430639012057807683627730177000082383588580330845381574664959962894228323912829279742958864248423080819519884974590800060018903192863864984740745504623879580659384291672090194435644558561838846730928714928956359326764150054910553817681912603999335346993456595537023294435782775014741068745664127109524964914229088624733546686372035483776751631862881514355839362491926057113018173207026276519504969027100729770471860117210385621194473936421032735652880290268952499757380008721785995394831113276890252073930047246744163443008138744053472848062586513949997259440413552782218266531150671778850265625979754357590117147632531142995138610817178265677757837586001265488961638927210375873442898266942954513302194120469293410190725576041981055098971704263118062778593250520551181158228041442107531720244346066108219629291861909937684047664668881424674313952048088746058555709068790537457450383595564096009471084787881812455220228089637428148441869309819431622907893293429021330260062598786533420786057004563635211208485434233125309707746616388448730434580807043388922922123307916692461027323588005406467216116632391505956123789167287381983267962568529178476555705544708574213430096640646388690213375108139057481715524197677592213698551994482846628600870014033656632329110222855834588208302259097160805431151268023959875382720014095076765594801022551696674427464591942735822946913849148267624390358643503656093093644222743494038453060521932527859700412869287144101540678682940883328726255850144787129021207296946335795757619151848497433796561432791494649466814436117096981887862849560138647557481018280489628156863411178683158964364094434449225008290152493736016780540234060760564151048835030060062937390288760543341199225370814122714153100029193507703897863948545190928249494225387768625823656605370311180919219384206573913974631968748333775480238702474732048390925638726924115560337884717239296868183161476353792647339012955424956283056084985437436087876857988579862519295602415018977184339614881632499276454550596278952496907821339683389803391508688824698256991760171532421656614086319413467740228189495321123898186503365294272498657798366512000591696474446916133513843736735830512218521042869519883539742779373801812290424600920625693640221809541870770785752421655783722181388357702278008606471097209152927183821523467991886999134788922713303163197980618517414941066674003928752049526961248925909856800890356980554583429583154320845914005004687237924840701283397170480500106080375882709787770922766603028929211747852630759714963255343806391152158280311842693061865048427051292046540864100848222905939606625219948132964008630925876312975290021707784058229433691636058435767222236166250334737600499768504837244869064794033232324218802056138372143795757819768318476530076530491010798739357302443334221431939922674399976024082056563332718544221409032363438814832465322084302892109307396762530444124257623806411498200296638758544792230846936493523859491439053073626818943086297447945474655313743495546984443343464492074703074373406656335277876648815334469914477436647558566200409732058077051229923648999808168123225701496396363475051282207525998909026294557465594911131105926679869804801540721693019049422999800306492991079755660494452910481183772132870599770858712679293072985564637782472573222802888146198916684666614903102285768732541060715551104868458891190555547605890930692903344304225423303420152226485436432651591619420258139679062280459823322029480549151293761388910805832618217033702896263018129249022844169195643916490127961036364772481565963557413110262482653505594181779075202785622697633824688864098124975030583558532100429500831341381967472607309326335940565772049622517640192878014611074030798966542692372724170837771623373417255232047541059548525874761687975416527787360667601232661398888816231235890062868872057279061765930884062269840857010655922191112674477255448654924546601322433315802608715393068310112496156483434638224504403966398523677414083777887288972348370334708834291444056828210586747909614070978686296085487352105656530035590593493758871401018765548848338985421348968054181775164930404117337821072908915575186607687968378699895190854441298583452420066458533190086431254819663710569448058647895235867691982750056468544109415671352035791981402523004947681937040189703275948338248644314126308643777647301280007304492983787904707859070224132450475998581089140269766456297244054453262763203320836586982018207851863208185154086062876508729474315544933697170905890999089555498439905580031979206364589096614210610858342955733858726201390982332836823866583267198582554734506157237437974387280787344701586670583919131196373564384815332478640196749788929240549437373733716547866472075206269267751712676979829889176090001865744472813643224969847082512539616519225068244451721488238252873422569732218040692809479417873526688489998021562658141838813578859123603088871715864678724048182762352648938606904910736409763629619254120022964939675173151595356440403055738791590522189785220836089734941487216263064215711277716766760759483017803543948450121252795357902571685528162754105348240253906575124139888473736912593704708247989148938589391077886068109869856372334014437628563914387125374817924846362062038570217291409358563676111239894421824466098126202041851661690379594307052320567089080891915988490263150851378943375506169640376995274026197390757895103491894189889724870298644768485229354103809886403406955125754991348352691861188143965951529360273374325935004857765518301975758761813324226035158644685004585438904299363862731210116260477916487852008880965660110431740234289362501932579465834715422274310271242158168290298316917135104211305496800440191585225450307553965983852694492391928174988413286447762732771674297563139452232311329498336292704780263330019642480217985226851175173375266274421799932181091782130729371494913645386166540867093358613192257270429442200204681289378801180100963524712086549410412284934047577631811035683471366504582262618454809247289547973688631663277608254491004256478665251494386252808637607460328946646525117144630616602712653691665424445696317346722939508727087860818893339281557168628895898518921395027208297774637508092296063909520956272342902563008795495707326429102635964501784261550619899676302516674104706219372475660068382729483336158623955323613833168596425928525555007014038921370597927256623844320504192385784389125763934005906155720614072530627916046439140792653427549978993447969672323764097510056510667467358945986225719579393431316063183602643667006464394829548870124998273979973522146479365370444921466667021797277007830385206292774628781284144441215009384697598903701588241424304700832275430556176916791083550524566773473814027264098651719594742742524264436988444316384906919940784274992129781548327346186977486304697431815566144045432255179515851627784670423652859917006247331442978275497377902208729785202892695632408338048242223800762157147154216654585441954875893335321823327213739627500380367625319608157978272795704830927565667792141212121181244286011380862620993923445034100066389795570908711537738455951548335147836042803686335332309970869729763252271708836188913111133390974689892443104901154893220628259702272207600953642923162708985227400734143778113466430326370809235509010929772979403155503574665464146501578617817191513474141048947784219471384844301350709562650400792303417236141314419775389504231927167074193863131805712259072137575564861087855138359053579419218978874795717152975154589942018250498585345697560695889336948188784148477150635334679872364310827919740448280018636168174834390265323606648366527656287533504147131737720811682545360891625796361608884220375576826772598975002258622816363634292278799143357305590171862500195087357045485551196314661548382728963125199530917415560625954734064374371959165113060290720404559629673548346091713058274553907485384454554491901821672696216153415885259836254577351296734993454221838888624205044340993079458902897530897766983256414980884115304596960960222110248608624050663903990914561690441266546585546781045576570050139237354409013117538637406646870724994576788978872405699385456301171984962798578368560204628805457178679704381028320171644532646556945853407961097439284301584064488188287165193806462437216970472282921875338313953327601306183863163421446423458631085079673479250050044635724421150638422909982233760329519590322815288202271734210010450077794904206084250180045355403533147562629865118356371349882345834130262946485091462489275162478706966404173436170788577998234650945749801957173693635289490486838195774799784332182749470294773488323607496209564556527646427211226888240229127398129597454801707591088339386597535709836920584079692962744281986030026752716337854506797821813026016441774973175813723666591629127606863469555958275892745059139230188289363954128758635188651783634481932523690161478976230870761892605698227441698305174380847468334119514460569560236716584207695841826517555126055719985453378851906142757788760673415429912629914059533013898178441741163530354066205864895935377523392570769321301529441611126957600268646231611758016043517098866505060124630458781836086209587503345242984229371226325902093242602082711033462040049241925809291258245276966316868608558572655019259456091480692453658349499484611284562941803599237745107164220535000887860056499651142722636977602536370697615476437255527618939413604218053266612950197953920323540788766240028082846323084703254993322538037574096848199960683804073648704327661857052131623266088781126074187951485415876153521275715994336535559997224536869600236701031891852506894699783147648520981654639378379935718359008286574488312168965761425457175158718884168633847182314792837239623264465722250894541408331956290114861468672548281232464063580154691609992757426153491843395565879337705541609287836776063888778339083678440720139093388604722914418742154912836038148238646314109669006892961407430400452501052076798412207348622535673235856339305154143587582390550101654701188807728624374006075694592652367811383114854706651370771943891881826302882085784489974829635034480633907159987365117282869577749627918818341771550672323096520071173567743096023754448644356174598705633709167621468754121699809447294298792271257831141558482875500012441156930945052854683167391098702833405669915481598892515938246664871041892072980873134522042134275767835009847777166588922871049583572741475157341092637992897149232916463320682453285344593921824556640917631154084224388218557711248575630551557473872489887023017109934074054123569715940503470190162911405340580019094348001685006442801988364824811400738310870989751431776979771481180298833390654307428417519129869834806728196229915769297908198307659195973595990779482033362498605961166594919586956709213453062584745428240913126178515841148970286143780872627615987254094171247724249313511474790235944223066819562263438792912325519713403647496139554199022515888336675376340577223331156573895275109079043297804149165164445257643874471330375397571288976730455659238557686472167907454559975337350347885440817282910478167388217409621666475277496510515603105601054450474664350744225501092769241972567787035339578830343572225584445370537732182477320149570464623451694386130329785598766849232843716354683239616364551281579544772631555151285355475557707251247131869850968826532196236339274708667524239988856127958690838570900985604257450199822606740522799991850613711541067925973114674722515376658923385905160034587833083544323623575828482087323279659808950075817100401760410777385345394947466409955052353953728682457959961249684062219557136235060613939616733880335447113699286641688246973792295863890635979861097756775911618553048248407779153749018386005794177024079743069182281270389691262067137480915759428946280092991898352920620702224755306068158282899294811017503089454409875134924911423485452663386525416036705570835138398526297539801193030249411186358751349742337022157527660575864434337849435787041960031108584093039732359164602495718308121776078964807133389581704155103135739137638710312454130643963975155088182161262093030105812008493976345163236348693094460784893997062700811987026909208835260867425787590019301608440208680988766066850068846318732991502198089912753414005193081425118320515306749193160732248123395475879770123691246961357253395751032973155408583340145042803892792780984400843783400034427573027209195139278754201231649053833537619117074551822239884959745071546440298872996771482071690572507524898071433375147117546415183257732912871316027296798910531287886701590965546031593951838962058747590910367304449578912965771456097211762757591108891207433896811871757645670772467121095338931804032387849517491339322351338714834494102439436868884747109321992068487146631146573230659420696425788913515697182115399038969943365699401012415246548225546638663802537171310019796886821168650047437319473957384578226341027603853324677073898543358140807789042387600010861924087938519882327185110223577191898968903279990859461462272909730316197309339470069919066031644401085638974729050779849747051414588657045721164939019753659945168444412334277236759435994981665109876051929189997098112290104166879763927422955940026741132563907302269213040831132717468397100763816238251175970515124172009360951732075453715494113413299541250807942505849431784225474181336244689149359894873556961358205587481473061672974050395072505167014039338556048474972680246649233494215061426843344129819073108761782560958959892200948985432079475906465676237193561390376827783592419790169436498930308451192798233689968460909921424563119467059378513997410332824177398945623760821438174557185304431118760939523709036573066508414549863925010362308947864627773834355483638014614866383266413498025278186259235281380259411941976711154692962920780898321628114262380537790578058080176105206568925598569723873656391511504547675619112453703050047663907187731900339689166593120161299110402232857822788584897389353017861278478256173486863491598778201012670617558447528892735135419809765684901472140111072626851278154574663623679763219587243283829816197461688334990143070487233079951746729873246294541877656572641061459946365708312766302253176142373191668042803729157674345187723405955081621906710460735279750004474367029859803074376311747948411321618938732285907360155300771137297215917560137705911453859101354551820360919416040118478597455557420664049787941359161494705125930459198694676105248074758819920973247883882380351977241735461370165380062561776177451088736049667034380791694694868718594012044857558173559734319327344492983541431986745322735975082010907805029505624253174315125831998684501823519936610084739629700424259205131925884149769395860277165861355610291583652958526506407019273155143669165875801289976834426751890067974052060586698908136020630108150346553188939481475834649847948366333039102140750166628735892781458779435397863542723368964918853151710106190364754309367364050455043970226992420133763235153434635756267254597597360616257443574771835150483973224113640744573515756812687131431964707597279078908207601334359388965015171175828895516323983795574005298554497483118294567878525511051941610262588946620286205823805662096596666906791322728078631084554983129108836843537541915266050868847213622536521991728052655636149267537731682468829259415529873438599369998079108603831375032106419132684786172800849561945776938220718748220231613340003675533245903946447425220549134633486457964577166833798387815849379399244034127278213405554182796033939221675639695480551314702777321645282609345201910625727085226340989321435194548147081839174114070772265401406648719094864840926062211482349011211999423533055237347503493848530679872141598900714649159141788702878324079785914575224789486276554239269135636994081359668134066834607183683591291922325027838953067658644470467684050904360971924193087164172354333079974971863820359405049468972272831687030555218048446574632047140413461329674330940999945115351415197352393046403777169217318702798067973884911305893693304785892568815486238998866752637284453637492403805316688699964681672184894128702511244107725437712602278775065595724181567785806074359140344042510099909641345914208297731166502592428300526677579857996533769338927317761613946230794726786008224891496620862673722795691329985970420924821077086018103926194649166571921869485805186273920851571770752950521930512455609869911303499884812267136847580098636104890004513127393956243866545615343682358138085743173545539601258820154150923376870607270889550873543219344066649681172684268054473515246342370190786642383996007023063173177736495018776148574786240369386961340565835017922312391061863162950328008952252505590845502518257536816228847018730251173169753753149151210337296143786936863734498863663956001683895908217634044166062080420859790412485900628578577342693429564778610758604319361320067783475326340780623842954310247776524330418398823195227277151223799823926647237270227420999003784909239026343724458155441875726517546496916028747609762890611692243384419460564298352076306165821861049696251693501232254493550483509782123076962173734783089970205073166643031915595160198045162256720811797468277383144397646094226272073532707695579967646180530009601176734925852123403399587667548510505315210799014577596942531665463572562805249090967582231335781167345088335750164759800215340423502649802121804194920379567377264556708663079803144785966378151526613066452720255339069364550661519064351184327622360426202649951224090308544972929979777572884608808195781496198856467410380682264641931843962357271879500486472234671289223021207842260308565108084963384338162915940198503076789970213126153991061186664816318267092531863198778875339071575753220913989535886049199620952043087148097266989776454640978831899928276302822409072342426850492519725811279433178246387897340355872141431919289396556697003375566413264883087529599945595416186792622484162012436886216389042784571589517395274400972525442765238119285165229355360499664598550431015223598296378136177751261164256350636336502695332413546801415028831890888071741508221527180694831488371584266729566915691461057261250367488866858921518735252292742918443219671812172468603835063678452528496948340534716585475542054149727957133182661715733924982154960348968615035788815064306942534235035631728220781218541329326775703026690745283223208470103198744011432273406871874656008007087178227675986116267492665168533123063868256576941460431959843781141989025202660304110615725585212883854493777606074207874061649315513463548703804500531641013945902223750691847078566513871618495159235475416559801399667439843009644560334590450015893704465246794312177523499615997085806157642553238728561879321554680443492008021305308816947194699183206207177932732456608029949381802903614525898824852139191293761024964031311180906271380811791691668728789375988108988134316538068938698992429992839892920508682292551900157954051231527501035360733085494676871480098142895892371538573241587925353537642798590071800130069903744889951925464317152680595024756252442220928411467458501158369699875105574630489487824393770086846506220974678590457184292315243044394292000547381838823584765656490791921977439139352357470377836843556796040841720889854667942125916974266762614961092000699167582395708174672307071357975024987861541324715791465151013277365084790875853101363134692475639420093030847302017135688201103342181790081132810371942985959807075705012679837312433717204329482715270034305690233113857819932916628770394346978892864756116455545244947671618797929129518259681893802510980204668608505041573726293445855314198975473177442606840420699277010370672127618056499236960134947726171192718633247412526277996262700145381949591867859219514113662094975061776430823045800270476269780452388800643923070586543614054529849227209518472230689062373354251187754068340594519335081591721547194008316507512414929471366854282739121913678208939246246278937579610315502024894833679433268763687642701437596384503222565699862040977026992011183571229488996846967188128430073152900195705558332203732827025777424218385551115555092185825062203529121282273264513083247957634130407631543842568571248149726481700630132186952137908454684590209318165175244021100975032248482034274261932170362631264195180988934254208334940978563897180754277129250425169971968577627879408123309027426754429036191057117328349519605179931348507802791228596151310911804495113487998050583378516851195008746136596336337181844746615282927503636519339920258723293585334519754861735082485639865105300812162794491234071633758032333838142596078970625225972830648169535766194820028053690153200707897728768211999950381501928064742552375678203406801270089479448006624643860535374349485467905979741291894992141168042859299478502041106539987313182151409445879066183305342503657970374553557202217626554209320617682574004880522776443476196719474853737724374773025568979565662152633442129183495096839939919456748367407265163350246201613222424935459566817672125641721542673475027818084571335410121015268001365878936006319945580643250075660610861929078789396392030368324503147256575396797370640319661667310247382049885083403675372173389619137112146928277460403897242139234035866847486887038100861486845163699825738199674864915400035420800198107405562367638956150048312121195609680993843682514601528510506733496598485665332328970593494260437188215307554585717654184547968410041399969227668649206282800232222847976009644161459441409883733026741900973719904243059780376544463637857955372384740137156474008654673807026777955226992255303522799616821151291508733215019787557372400232703364372928997835941612038603788304611694304442962051730594590748177558896005168963067702773638734488226242134120570887845714951389135621534211476593634006415374740097862880206388651626000567591098373062676232630114478452164933636591222127686661801771389963613558887886649347183753642650137276843076078858884157697274644302528068675109314400271363090337762463737755728883445196651549035652977647800862484669188481431896080969481165757093285590532999100209973390281683862134608841145077710158500191179899691779390003245785597082124243555032226767431833035488162146482891391876611070256199791524589013294741619573074508208604112154029449305398054390290942547395179152310595915055502552118785728571612941352751579530261865286783487571656349770008063032222538929386535314634082656712707180902931937109720030740981944308075945046944859600406764014892311175467909816009579165036910154849697942309070787984495420416081503699615739606508046900307634872169953455281566864255721304820254835877810544974382088395487759842053318230957654238097001546571755983818163229395586744028203919935445002819845395918560076986366900909933041664760370788694597175959950529370725985944044946306335846368500792921795169169076344904941042352466036547009358706340450821976070766147249301911477204591780807334126289212406627302176779835962401177045486761229432434814507173033328416984156549553277984753070498562864741901722091784536059699831724409202807113181360059133746634629369310824822290637600035325607049025673332199436371598702304888347808086222843601044496782157401718208865515930116836369023276820066947271226299821870981391088605251991923694653917918909808943929583354252568301673090835724604039722165799084838913365170929412898732391989315454862850520539613073610336603219117912616930246743368225882840249690065705389442381382582872653166327317424180811392462720958393267071066782817254247986709269863341127125806046776375909663671402885542473899602151659858872650363922114714607663907920233256459277198062325083956194234641375917008897293703512070415210762850814746713859072885759080324923521802100524016072405739328254166532661455953433623878185927909446616684850532401109360410136407776804648052478456381207477178161727652300355399103799458035927080100012277536925176490484792627892563398313318702483357436340646784914485055463764613162017713595106677671470915332992270201014020116181061693620774603496022524110967415674067601588076892914191666004934379780192630463412351241760658023713479663456270081133011973977980857679789356972978312780244266532834895972039366314062216222559917668972853977013615240581989020680191981355117916218172850420586794857437493122692023366997541330279295236790579123342084456710307382913824468856964941656221252203257249489225365421093922886098577528815507174218722512746586914431626666074638650092550419300805377689289285749541504269542041998774143085490658771343073121248701294711838441239552842645653376399770631094130515132048624982063258471145438771182247934065573579143865647982304393401343091189406016160151199076844302125816470143319981059204840356819583604267478372200536760493483152744423558140205364887630877798707360265691604283614228989242302531097853732396746090564031314801756086787812572465327105622095079733914803233846936727330163237454153275775128483078731453313188986449081370367276799623536416701365420820691945214983652107673846701618818890206332641450339561840009333300671316508063432068742195705628068712486685046140454401523137989046857236940117338996352209335039741960803554013286326817309737208775222898895904936056129121114868198389121219425261228515155122852667023410551589536892612192098646513932037196449405070362548949005078987638173943159740172799873153391365094876962738022358184732000197860528386365275078810186498673653321233413145686113370067877449201766775729587565228777033721540626512646523291516071004683816826803599590367147696491178541001772277004150575729707069922073154606835452015280449617949626570895690482491539989885205425900314736845414591611658136176421839586577685110107797429407372544798647706776673150755414177791028927555656476998033139326088482782974963931285438539080239809572710188465582970686929035219832321659087639132836253227139554960691824673064556586123518520759295547885611879681702121365091571138038567755667401132826679534381405528737022982946844767143145747127551505827588662957688671362586536476767571263033239452771794387787936065351551417362733976825841354949008756477708278983023075135723977315065750064299936772663400460434335351257858891999465098289486525391950524105309407269056874710755884385808122998354061828269326923529848454886479283300536612777937734680650595589107614850125608565674235821142180480111438427452202326481969349397826622288078362113014325913769563580806393040878309881364304890418013039850281212376090917512663556966744524400722831803669509126024263302231864958626981708697605010528434072486918882699224703967597203650957278041607964500187196904058298351455258631900627843561087253299026946708159220224173220601969823493298580041966441654032121103349858693100987205547918651340761883299431989878761338742494628285051159102651337075981831870174632599844646543676207698152585956615738321639092070281978760151641353562940622598465777612602232030405164128409256920840579096117707976417316150941651776860631371583050017645245754171877594621861812466178152250270508488376832180532414230655397386896821628002147045309830092350608945735447430936761494404391417923081673747370591715068305253074406445336723012094189716760235352189436597469813941226814168709225491041844032320615754489111562444638527186002317028923186119014172458469677517623700170871449906284766472993010234641252137754989273714067449486186385346134377013409760193652630865985625227706341420177365310440125939419427156846369704546341859381943037108586631485434456305916078829747664685787411397162183618600726723832158486830690239230750438275148114370224668979304919305942394191100056118512726828197435940319676477659381425039159813014641449570079290213722318878593446977024689607053288244301792976800687010158130509071461307512460412302881845550702533666989071256287092409226393562082016807366620621165584405833780835640396618100654460131718262663101044766889277929619991922582999240562476304661761772751329274830609734816993945153278438371371481137289681549192389594279323710262465669531808605694125073728486907614456304715044315034918878842297104786983198998351081673675921059837788139944557969469669577326903477536229164676974443490936370126178603407835537298262627511885718526214780844875965532784471238441850607493929657608117781902350117746760112179206704865171109185240319683668425938121334676556976103917193837413698191312706477190698170447963796614347984724404034078920779823644271495703278774485451457171170138368674853289507147932695877360173152356724244280813856505626169048255119217912078404823458071865832329910842543870345848396153560990388702623962651495757926515597247468008539180126054529482049890986708219377389015997317525630062218582446902946025079092670950391675692069830664223417964205494874449795436220242485602866927797976624703352439714647208661024055491287082919342254123992763871523732825888640734015611431527142173883085336123306274934337431380472895658247022841018296055302378388105983304570899996718894585192627285344519115746590338521891289619000179546610078353507317589952893228404891861827540090918873171614828603779263964938544599831392090234755491734082415940230520019990539108652485476873935180540367097564773337016152412537363318070240843228321943444090066462409247218337255665878442123563151116919749400074582241672939939919866715517658151724409711231770563507800384141064951601862923856786727600647652953119519321249014178737219394190642627681011563654431618862562098129304019288884408215222449379016940361944794830377758460449852897843427915819473750745515683400532314234420344134136882031059174273622071924381388530107743021661467671561699010221618669384306293709278081519447625743661046509727669126978079636429185808273077801584156238789495063554700819725566912079861177961459122886841639008746467597971835790321950596808498954867076176069058303898047966743530266264014497160580040834930625416048900543132188251650654662198152063794143962039435053537283252639699814228740228390244082297063373515842844510035882343609153360877937450480248900034735399536900731525135264785601227206632172292383964374428125099874887648830850212559021818630681300928231581001572011905062082421664839430655012529737104080201204688294838776324296909327669027699975072326910805960818097585330529682325678639587697819709996508494807134076303326071491625470030016321205937664740051301619553641186398032892043250749108332577497232857946023988310856258883970188144321702306877124078652477522279980307378181935288723022322115496652797289247645996245979381069791894296656996094269296848223832772222266589466990656048093044408455021752593732208136227892056175951189369676591766572798881103533886850993888473912803687748623921442221285792319449467710508555803721024958451287823076998381224205600179241541224181533650053150872456589187031568787189426943337791706715776878389038847963111348476095971732265728594133633252701040655255561433968400944879753014463425019406152457086971571921330054635436554020156813618058483693297451385531491892909953961256638032638507167607281830071024729722208045619277568348106434145091238736097817258751181663927060995867635295116991322412490956503579515285291655681525774101094745512588733205055601252824115719500504292841123256951736826860735545682565391936552833980949573827004141456556794701246666005850656960072186346879339543238519813046457698996667903239271312192222289690171119017247002844205560797853922667046793913571881240144917952500893223092172424640973626815626971133332943869020971705058272791942981642676103335842775060234558791820203531655642969152017012390064922129494299784340546002569245554395984125577863248010931695871399187118260984279423890291105350148841340515237787461816811307751540364934677713029530458728042291453740348201383473449107627341699892565637543636032813637111223689786706674258770330804871462383510959941941087152940826392985424278014907887228826855671489948700330792004897323188414847315236552362418680343512919253157279031689594034447044272010438618937349958391549896236998676779342657356795653390695493499473506820070531131486952442552126884326150079449262568607206777952408630300394159376644692271779596502575613801826008482770295443143415795872723693593148010791421197038431801352855279437836195885678698828764144325557575493305904870325704555901033770317722635270188449484239228832170731230933573894563661282564190794353773627845664804921847603877183916400397973257940800823020192967918704978006446944653561264424389224429262087071958325033609025349568449694847772998839463533080216420720338951691539691251696089887683147798324266904963404899251285938516698162017917160338849557416300683211043622498131278121287491786548595858291283306607616477958521519746505472379898082412589031619637515825489612181688330661200780724608710442746764239615003048965818548627465181960279597475780857188390891083952543766932480629900482445109054546917862669260146691936302739200246793384291343539738332171839242717186544136999362383668479086321024712708093177513330518258296676792237669155416903836126172844878906636499704862480430290545561594280605039883875237807583492487394016945817464923790983345878934477520248303939901621711701796383111117772532569829973635625925559644823268427922197188987467710492598210220560877544230415792251442233747946133093616985738751843882749984475871911869020354292362707391984596885133006678787181579886523593263501948534394576141875099669284524990802148021958968405976068886408390913511761242725416827133716221869172726684311913464928601976557275267250851606076087435591663624180379555971200618228387998843851634936619304859774291719417486949733429542707295291444571101126456940727702063586828620999939097500878466855415929148116167696341552296760803792915775328197056226549360708017328928509754153177769449657268778343134237541867750177258573634043129502711886821923925540565643275800121102782151221029953873785687667895483672754440497227523160920032417822549798673182857196182036281572644627835750780351497327533208058796772998527185982703501164739960695070340799978520585591109366555065392368440603224447761966084185817271519991603804567656896498523237441107182596201714601766173324799353257021201502602730639672246327005271372345521091952198757371419766477519534679510579228067374384364152990659044164463172114560829858288630396141219653975140867652313847745022155002954988316048515140535405030843762534047879911492853475027600291700921923307929872344414977901343672457361912502137452623868918806487459851945303114254334336440774430582517087060571953542641720073486400137855722328241234859034883992138879324469741649806344570181195087866015523038179553845001140635478777209955283135208076902790832612069462532614434404894444978784597561786003486978922523252744163237535625277678719278961319231493818584999565709885364591343193750814483295355190500736388468594184994490747786019932619114336632944910357111611821338484026157695446170458530661240021718247762636280513982630085618264772932526035179329598985816750343114420560284410624890351536337761072689734376899171536881832040188513306849115525086439664658867860345879243038619309335918008835629088142070324051220674041870536035425093796312808883582553384508831156908494013182382151402352498772520617784523027701304115910166425194644220838491365866306451671560430936765459240551397598403045074967679091675668709487819833473994384389854736829823669795450391599351915486579412708066589620381651911780986499168431965608144607280027982115440679135572157807914191748707920092125859108042441748220380741788378680950056117165454376675086995016620518065549303176046034214860695189238862508537835269227971669663744483208053993118689742825719617953277377777478278352270454247415719251776946017553524915878043440018499680169796200875267275480620805725513277807352773420582514837096708739745881921163348152694510389089564714331609320736525207334084263380616860029251353724014142298479039893543873047375436107355704180044172147680857563415242275983996231120134194435856713286640471673979821784534271674825417460230641222611069370752587787232439183645366826096788485319144664278378607151056895150427013515825620343548313971251091487435041368806759923035466484413972090589462280370087004850227302439219253141689840918152619807288149297638146313074780827074377451615404724517897051724524661441822198637859086102509270425402338096286313592843604922204099511773933313295767204280648956058764065648554233682227822370897550010195418034746246248025280418258958588117582889728105813491382454796415206862562793159668755349062075066714742410141985186984108116040872765290415425090629325008059371644394188199964622783997680373396303580115296040635158075100782601231400627908804203784364386262106856728336572668108595147320459164185825879697888293433843389331696682137815285898308106279757237713548926061902522655963490220636615097044724250133453162696462777658409747302189149842695602373285416617282804998403136527563130478275188433156027558066496490206210268803340615996503250974903886902848331038440715608901164865385161458555354544761849607821942846183899910532013161321940978741965444134000778623575547537614936191948550790109451755923483305971781431244404434874142594169035999859893757534835034261401848607257961275598675841939989874673002995403461768228251381882843181647707380980956892115095698490786374925245215540420950623660194707854746770642774060154823059788743651705879629048369837425532401459976530978645317491869375184885168527637874032033395904815375109939114875765105509260941928871898845776306195107291546676064476216649404370988138100502960386884952532484287906781000399106107679195733680467582731123637631106784650765289616554839561939914777145444665609486174777656230892693814937973619442576737243653455924863459956137130964772087501653825779273579651953592545953184985982527221106715045868672889809822866716890572761084115057214423156027704702266884019701782428025627023949093626979987152776416615862683109580612844328067208253326947561764195988075064264705415924109810076488380666157159104948740539642250974473264134842622864763308871992335610453196696837613428536147337884862509379807999826786769982448238579132912453143923853227241564725931673377279076059910311939682737021774346596410067507912643581745425172448865648050278875536283720365696806545197867371235719072841098353168778003722019172032102411219351325416395142490135878629584468506964150048066490472026564039473130752246474380908282621513312434072131145142728576745586734728773194957104838005353031305630346145664091080580627325823570301743211731472869278345751722724642160963322356928668034074712006855586335205545286832441059367362148763190517441952131217467811451300871670957578299403158006836084259621514737764485238743871315345449938206901449943904858699060094445625010756664191076164290486830847169318148083745529119658359774095978503641073377822300749004987402962024242750195378534186084032387941541193866742058922411478779467009568436383520639531684559719076357199739067817999507507280055019521932449248538727957225685101555014082038107911594573981231798542010386393321863755501742670007140236138372255395288868441504441334042159368316025888023912734032166814477453317992680615286265895641663520554706302796350141402358576439219541553886913587096130868827206001994178590232270621242823871356465900030596031331472901155534815552348842943137696658954517191135896564249859014657984780405908990058995193076590764469665248175528934468990390199357367245317204896038570129180327642786336362186078239278353408285328642104376291219299175616525239206479206713567801417407937934010061020303472176454889334903685579788771399613724561406237034704559790853089964027498689982290326126815033875630036740902845939337343161548325210068230248293584803433136785757289849061223932264226286021064732758298959136136190905995984941006559254356981343553955533174270402313517476669706807248292252770028617605678302751103857886819204519066757834866961477194918283515520858019316815142463488674524455362186127046824611284975080274041109212437927565464946215185563660230999179329053064071840593065928408534246118997495376154936479452635833502178266012332023153625810131246148976459260031013625536935872489231285516886102139752004981923118467000254639217057539797934657882974319938900091417933771216497022720764338335961254861059046508183620117503894249989581246665204616570317833595818687576697027117434975063172252097063657725975239782462064563475437492980315607083248790542473879678936439510960723244007804479189221748010102363410783792554214158051744091510953884923794885107107707908186087258711012128593285655694952290987723775709371719893703622348041212475803236471342980750391925438205895890543289466532098148504905573669857015888982179482357826659124854316789171868487754490073526654638151695267214947085499060756140301186405048373898277650935441712396740765867253802246149295242801207100868221808119841425295226585346414231340516005119548975272048061333435893476748610196178339536655546453498289509196388279715292980904150113718864624355670919584136168838710816477021718978249120989718995226689621498426608044476439719395383689427273971418242151696788897593545040067306940603783842908951076403160405400435524457558594775772192028840454872696185156456208933672222723678344553012815385361038563512066708352975467883919529126709331521054634089603931725995178837324731141906562570509514029615342592196282345838015812724501258521268078922753224053339362246123568425859994911337232667443272018362905029205457604750826143908514130508229611120621827158937316604417007352645157242389981586668240288480016145456022825320980497491182733646292973735438700189781992947211014105209424924249344283074574198018425269020042594707417300088360946441085650775264157089304206518774584565980920408837154539371170484654884475068317311130203381902687506134828356482480246948946785962035805388214611210803610520459723089344654347727823140621873164759041137085234346605176345559000999133740281373304116429842940645227425236034225895376208585287394247387464147944591168100215573575426332898722662636589063596279530673216261853875661061278166884583827363947684398026545863502508268054494875416607910485303241567836084502424843423821702906438494916182977793548515603310934104350280313262681423467992679684462627887885356981849049934862594056447632730115365554618114924902010580163661871863809250346560129200199724174529814552922125147480631705601476885611213041555695279264052525891377144029624922087334409066837868380341142572342948778477088761708199649612814013197281576737962322276902598032655854915678191833525947929370492569809052726314058263140411738812547241299250354901332306040950106400642914107897366438457103748465838541222532860902239188661567137641289037220158459067355748866226953194866476172523762176837938758602694702951693648963522546223487458284965448031535432243562654844989680076538443916130120988215359401688474855069809887509792020213050019034028814290524125122259108449772198615949092901110579943970605867371981812973760865703532655182774686392140877990583371940931870457367977891135491165861562733142020885642641083782249399274281164437145876287440304209370004792061988908280372049280683246809454032339210588842770163731557970142010870487906339756038911725548563389969131158927712578995695506684750780628962923507438856420833392302788782515155525109215146369840262280581733007884420711633419439634337731154778783961651336842184642018005131108199481620842532242702923489139817932483978191827510721254351802922126965791858419095191765108755802357844521874827966462177148957000687897398860240305773767961362659701271384239844858856029173190130411046672735061796216891036893283837672578312894182197276020322666337888051435827283084507878188601541614745995528353491881071299949878022970392675087997249533127139821655446579821830618567413399544150820166115259214313959518619252426744970724566808432977933673693541582179657796798374178102680767316602874931014445284851646486919550222465807141839955182541846310478264549562236976673175408316095959570249074558396798437853660929027883678660386731546606161862087746908969490858071963167278259031370638277210979601131067392758698412046989481085723610946797369032196481257923937815575268731554791824585677047003356142361272895092784366897108515869359189717107146051926353934593960562433223701070503954881402140746769509651877492169220605136318608012478626656923854126021758057620030613206080514055408499363025346421193710562100743517648525333463571985749169445310088206586351806437717054563933274755498621628758989946839408969986698678484359033205713801306330872759969117431765589953603329626200459630272749307490302102373463750341604234358209960111641555588548004770682299060885756399219357550226824768117987798989829905857578313590616041339880542644645090178699785980245552717855652082912756479797315650509647327405879859057121101898169063900148884882433184738505697520402541513335125370319407180676069103959830821605066037102665814840064118274137718168768024329684439252144990374656614343065227623745359207491448617801509706881658365231148518565440916550389613315307746253179767079801463357183004883055311549866187278084898499827658422804971847154081727542876546346113292382514255598950354990277568929256312228316319611644898915337628592481820856790517654814283123525588145960019144394140327881697725042004174756115053204254382798873024285462810490766791548336936032406275847643104219610395820328943424710615260028753934529985390314165598897002048348308885136911712019157294189931137408624555820951384372396662374281155358005503592478311569015885946955025764665581197311104941988297280970099066993531136329575524972190741408361204161224347615855122187443438576908110008526691891153859282555093055485895244814183184428796190141606060671977008134989084490586870866603632318087316509498442843622710245331362404047285919470177218190181882873487649925396674387251595279661418481651301553908559696360320816937844590479041294453859794266299812099462568987860928829102412630748615121715923235402499770554367995722650653418945117522825414505743388820035976662299828517912798638266766841294267152783657316111025908258636673640419225067324954504901904550819443272524037941075488730913488183577538534403537424871298110346592127365794834687645969491231939599487634609722125329556607279816114357817181310196210013009083171869086919713915392317567176195134551447207048225822389698521454288501200104285093392889921613948039564641399233024466026746691307075600754738941720011699620045141161925432776881307559422050115065936033910245787890641280597580950870266972684638166005031922635554198243920574172380599447679232588893959926637277414709646641507692768679260445547866347415204443472882665290070849498932057441242094635648091937454258282264432997873284462744504067447544630824648562779211394589243280252879676897075897957802307288382444107698658827162254411264143640966005582574326535776793783069745115240831185760866519078430058974905352666718586486075875892978277136653024894675406653636512775256116189615614013204823943271444567667116595769230202998910443532077104576356716302980501024050674490577115367268100161078984728305272433370572534585460550310321813454938470391878797853673634815195821743134508217723344788355313915300894396706935316559779582377726281708801573403751576612492386437626973373062709476568453474694095064890353294978591536512100904895541435928234581214609944279328985104694566138295554898541024498563258393032047351391001150463045986498626719143098006599141219615699577145181316078989984800926553633474784016593184243365129101207761657316097444302521409673708616649304365580879917611204424128734677387854000528927536884275683862950934328333873400160806868546913817539167898373922778322024352278832060860528907306127411784880871902613325518021768476296116359274057948662925764454350596940182242358437428999943138774808608054552208402494942256385866877263370871163796819666332932849954794667838591152639638928995986694155214929810780787336011533160405086344664552574497790723468576186999647861215392029462125532532188099482666971862293654316037062021695595407865246831725141875433112200943536906962276956007273846396968592806395175473117992264007415886889064813968202565554997728411297845565943600864082317695292313737645472850910289871922974907509016615155757425030606898840824447744183210068046513935639213049397902018444505557790032133857851966882557418372620666826878641994391001645910092898179704766449486412896689745850153727987157906173528355040012338375254138768988476457713410468652521310133406352497109795512604894613824699108493863867441325981475274334255929310510132850048889286937264695368347509811946180648376216622582257528898728031687646219045300115367045521252475927307860868040536984807879015807798698988131159799838170762304253371947230846232974234634475028712689800730105709123291335081500215924960841817566878969407633261883335203301099223245159425332142092194117345854016659083375522857045320638987854790902347060106785805133232892429138992278836797327742682361167639218847165116213940730926167551555776419926954667020732836035741910183185694392736897274782034894037230009222266032739574991386424541377462299979347524299402811244739882506023453103759153403899100294146738028060427324396949432919161398802445334490596668253166333447056779469636451137726241777499433146927260765406305094632938879101737078804932235664523410934736680888449809068675651773175572925352242484445469838312479971765624732814044640728784897121602885780647799328754146975886047174732345689422197547493628882705858474123797582589692096362427030209928092796800636326094994125173728966084359325667782558189337612971891487915884035460862434681728418846781515949045955565797713059601342976568839898429173901221471448004150396299547922062945117605797654683880043104631693008902534369662691829937154268664684968187535074850235495469483934332636703726062790479224033101810504739648791388728810628116141741411361789691528140741912002317133076395612739275081231234445160191902873466352825462926108684300475615157274944540580244216786608814388754405327956422422479329745802577225814709138121769861698327373890640427640210195188053831679589383460683903995407275496450390887493601557897288914304182418028547590750820481476372908466327067588599104514328420748663004131616443143770151247428790745843540994456698949379353764569507548227207932999362337552489995425898150869422860432093741445439217994493034174635337260620978063453604562791739681325628886118031060460108669509387603568332556962579731768758772161675379089684229007203737661371108920033723274824951535759260513122608064432399076270099954312760811605739365706963672658224320272434991451781497868901558273826461759022333217139165729440478671144039069953869616787314567571118237867526790161020042873117615742565989667424718539227036718673137821236748933224497560292259565944905439369472141682620953884906873095828881195051089374003072720206828603219298517158322099911197260029683184404031477980463956281277873037318801133048243082497492228615065082200616390027460691443609249352764268556322037759464391090179088075840922051262905427814697006035470209558354635263574869328407140156800914715536520709110386066755116672277030680680888295674271472154578652061898680306081195178732251893192614083929911983790795778714389672123555942469257973834807829988349999999960683942777723388309020078109384765024643804330524463640753866130944970355567993362981265434926463010841233790954014703333992685421939054975814975165333512579752203356549459435599816321034617756017559042905655829224310971867540792906057683629500886255411117431088773977890772394298984714056693672131563780722956823608976306242883614629280114773557083988846989746838929170062574240222156814092509052500101554344789717792242878160296205554676124245995937542262892664813813127980901327432304230495502179185886574740399420354974718510587426587087334680179979934214641290436017773589797386839742860971396494523404884252220184777589709771303194145304290763989992435313459950132139773203990346578259970838032622276245374284007736483333624250248572468056633111955474270455431043562383830571202733725874897923689986393436957369045301062016233095973325717610477601079948695287762172368500752781974150772958172442647202163353604645170801352280837083205708422648079957989149625870538046708471838568873512703599362030198396342185688191915527340780892280876962870443955223821247872799070098327037382963769859156812526308646312272119578623645356501290040021990992523453968085462664433705958273496103948855910854894634858498950385004641000224862620881759476757083295078068037208691202181463146688559620144615686353548880717811596002508460293509466387935914670424935797134684105776089199866688408601638054065201232948309009596596053079728062124646523556724880053152828004119942999173070639227259502210976665579991583172343475361071105278349411572560077697321605444276366049307146204494033614782896990917227595580465681797845682064347060866208392652108061162410403753923821802534468108877237877655422957324990436373797578803653117806312589785775069152261829102957489925821681212228400332321714297138271909844280219765313732682223414682284686381764910263431595050708903547575804682381758033837044299439966434474682006652904312971453376250877096278960159479577815151406280805463122837053203337901189388359971060750071201088549824715857273567587620825309067839474392983813463708835028649519939767088864477955946942804625127123229877886373486332335494496573317595966939963531361084484544512214836972997256564926037680657349377551497200999151314629913953274379217964195035191303793550765543863824329234349214169266844670143883070530004193804177609080205174709668892748992409406086436210252510864451482404347318727099023300977927911419420389319473224032257279649702056366455531557622395478199887171695574047038228203043616660012109692258133439420568495365573329637297677379787691198599178811598270109884558379705018394644578244951895135461586385001339017038480944038325574659447286725830735644671045434344709572060817730693672969548578196325112925660166935149737570090082274420983085299317503375388984846044359985963516549111381027983241529269849859652618177572170497201795388422677909609084237087807707260632180492087038146750187338992093313625330232823565839127492806238276336213458956398999474736653372225789333201751924842231901902454016925669692554601971899717080586697845326607653202754012632087884694038805861388467211248997013648729234440526862776872187906813137901731163665413631208011293483108245922032043530975917161770936976398462801502166193555724823888085171587102632005634127886094423764885701818765608110468985636416556694030246688271666874605856988468271014057036585838471076411746385284766393559960525664190911320047969039895404010611352275832077761360755356193733945801259043873933228726977897697416722986056424676928564690386975890347394354780409658783189816473537682842400567863457799302755236209513480838213842416367660160906749972831872458220011114020665901375595736456369000336682939908597988877840983821709945191285683055037346475952305431034940285281981273617188246608715024523549929669843067683947180512057881073767152123059915482953802886200745997452342711885163064722538887063971738375598770816115518404544288296146203748793312218104305546405004182322341683073116564201822608157030071284924961290326453978507470108175017058101464745336891579733582043808053596159281384862406079770792746071143525995080144959847374208248645367481415772822819466176189758802494828767366389402458440899501850209966642870076180928089702835532039389285092918218604019700719019669695625992562610221057101586261129440052277021734553518885192929405589975718240935780254579648931662391089039870658498911088503955633432657583754207190446048357803987513289856980922251262275761576377783685554398668436964183445362792432730044309179317155200573265391339650067506720197192117078824871909911153125813755261259370815095228833128351907593516784848144611269926931450715497430052663430989598341839670655034394415428170785299802766525345454335022195310863098598650458132129155303926377454146635032763678725099031549334679117894829153650954753732038922581296174720141763015899910947007511510778527168632189772309630936682855044710069078627647300968945468467903759984651392813025804982267999284717803691541996019376322371029519149059099006436361047952475658157027292124994603401250381862730991210076807854461364377043666811722835160094730667794259961484048791996804917141215006618798625829808138304611573103766229911437534214859443732854252226119314334149187137037106739653550459811539180536569303951629727513281989692110034971616457848845486671307586978689289950367010551675325386077101643886886842964136209193728547309124986575558166149099793398295257329395597602994913984719237379549206527438723061790705675022456467005073674667884947544202448971136392922691848881644873498832641859679788724412203900549899894261096277513320188042045851935004115154583910893881871991224077845182511673750162294915980375711665728742756879365489067277644597976498151881399759003239773060404745185347517601129632180605033150657899676942368798980799813799290313641057940032323172497826516366009138996189507296500991454264406267236789577905133407529158056784925445471811547731563227014031926614686598181794128113542082175667108903456754913221200477487487582550349324289363264283744597484365463453676133726089064271577661988303905269427287967426296026141168993705915520298495144333936477494132897146924325034541925182779092843898604176502900855009247447274787707917627716441919396947758772479536438527136818184211827110050155433608146037437327315241682212350506449055485683657558661189101131291054255439137726276651993780092795228124050056287750487282569005260436727466648185806197032108613980362914258334087743611776487762487245722493351312928600329027620897591928690374269274920199192265827005469201038695753975841626255132915764953081347815956230456157762776167313820729685286958384272288580659140370095823561234866126590787011913868930777157432270543279708259221301879113458302585114518649818414005473864423415772240226875764470923631288108633564418424934057531358782290022225475844775718963277325211944568822175401045280042723915859488916301818140639110048242583313149470053054331265903305390096408174163033579663178426677301888798655992114477563949342007750189950622509489636130963987818470928223024489436771299101881212297953111915789454478921068780284333447716379822183348079958663819409948359066262691269684868110905560337107599515411340544949035255842512571999962301299539409659168514454016240765976389226183988895391671722324689092109289066173697694747329486790445308219698859394991677827627292619100819838412982705425022438490083949391181381174563173197077017172788346178025570759478237134724333691636587040009740018667218534682991705352105417957720255736688390257703647696034082749299498256496709067159151776739341175161271315600089836313358830749457288153003203295734665026180696886511506637099174813171236516697161141008824129345414301736882341606262139946399807701379411105255139896212137369871920353646401719201643763566678670738528849365498304448573936691006864692251136336296239034774549457512056197335537870854001883816127791606939798787920728285431115478337968868795155296009187111856854195585327210098502217457081033071448022148606185489194459516021240128453832166053930417437015116796118492756038576573879584813892232119100009972197897212599282246511110044970271517523404182606133526215267949807994304483035441933769983192056001653732939670127483012633329549996728459378368168614934025497621302484793283627764064652358571927301873244532786295750167439985178406462013207759217023772076122791371224405189011564382674205147880421633656919282116591291440019910645566911093684855486305672688773430102168128643605774466755096603596663480052876989754293267707264776552217927761613688525464377796531358846517458264987289811592619966966728781132353073220382163691108767161930687751795595999593474678977335919027100066939189296521934234798542039779837057854715882718859060255161596537689167370757942543004320663694884036441211256569633978610579305222997015582149367019149494144262778145459562901688819569656962872138510422244058376746486384774447243443135351433382224954252665470308797067583014566416529254143850934826595008985354142950307919899974058675693266148992706816605569103975557115548984178619939456698621396208131813175857780936464694596239035436498126066197683298820853306208276657354541868618246289937043575912739030891151130751406579981727958828542152455468383492316396644304009933367275536098123235231691550016724646260655299345161678647814909761944715633413808269167709434526931353145682047774522965009553329791392879763754991746304257563451980595040428335046712141215695736539539332835947667647351343383451165389963893559465924988088485203051627633294007931770262551123945363369794468926007619301851343335236363001043462012065645139448154226090187719598463938358044569297523475245811654649046088338960314300702443517405329631790230854043637608209957653454660805310457498727797148778103711496781963265437330485556278273480930703322124509692147744253029135758739468602807470513227675379568720961395458500582691182156451891049459127335226748812535251374233495279575855904238004325701926530437137910304713839678893935502803100244730654209023597614414846513518230692867121278461044641750156524656701033137051353509198003456328728587525568234677874350267059409841774067906198043335500216315692301987466735904761248082870606191859161378494484705749462250219654953559951021234220169744044385114765297573793041661613505784940603875143839619821470201425130297088821300067228079347803155242596264200892839710202191743131500017201940324107671696964126485311790424181703039450811433371529747176989330634314362236531405307882663621527838350199702688920871165621590491916647799953075575141168741146256617641278046931156854360447624241646666345512773671205414262784976817529836127674716840752966876484320413287722269361982062953782761175692802664019048681768469104179894058465569319457694836399571707092433900017630173564608877627874209315798862309473945889868943127822508256454482033182556633816210496207834225122816811993430030149725481203931064443562861003816765960457941961783257004054786902217573667187452725972878106934619451825626653041731658834807426603250323070622738282074847194004226125109964267342817504516361145873384580243947474279999702896152851038533357179573075489725413010011706712837406411235736309836190739527596655634700957688680855308168925606609842244338555500382231811774673200146676057590230696692997467718330607942652172462148153617247610471412137683409931938973781046289047464008170578991988855801197736603798394036601338963208218944514404820622408167852495970396433861961435609690951329541981954307323723616173871773460447751075305978031451151890212413112205746149129169828670723891454530579714824888580807270891765610567758796608981114493228748812124943269004972604117040343765345673734956210940088167411918767907159917468377454408382601492139654060942883984997145651670285385401615975429004255741783977416741868526471799743682378292586665657155492412618431818810243581864439852176084591520314390848955599736973094707397924535776056487908680585985102751329087346760694743287709135283390610717527992972216604071229892864909010756679741473350728892189693606475547588705658257270485180665173613135140213111021074975234909452763201365517757608228345932340127285904886096403226102035074887241693093344465708800879172911381097927668168723708235465572439639053685951004422359104804117359379070524208027380977423231122449608277295292964062230186625660970014997130143483866386577458454280815083163726955323666811201365718571903829565965782194639479166397333821537382564823475107783075658037964769802718293774835042736533079874667318337046263048338280084443847721824565677297778358494089783428351987783147846691626169814695665258987285985843192303918813233532696300662827527225026771333718555863184458395118896548499710608383154809664319474720536656206188444875162536299638227199139085950126669137434179133358755221575445438856199831674961692277353719234707857977337185500577380264117646857496247560252163282465564079952664833614091842720717258018274400710239753246116294117510884465372672666040617213534385210043909528500985705437740903874815570580216714083559326089322529064917162310044240185650794125632404579956442935659876302286698850875294058447210571983057794356194232850852494537261855498625523771944974086629222518301912724011251945560151516360501272248377033541917160662863177344225826858725210911777737948348699138428813078976177640794157449091079334330620616979265282953686204049560478348436456443091952746444037304992006908070691249878313918480196126963461003856159069142857207745683446887132508459886461116003083695902984129180149101780888018909417711188628343339823307997701337073404186899611913958216456645420177337200121705391254854288284861289946169590250913317356919512023515759697218991669602036986625968138244500004194144584402141202599525095137668400440365999200945545633403778732099667855603674849309985380492952604072032228773239077188026653596931980826931959871079820140482793424910141823858624782626475118647508177609614702367223377944839112584096922296883432525658644950036643457413889758195193992230840144474420266845226774493678952572958406249792021341008620237354573533974988079265622647618874946859236641955245738493471241383574848734021699772528988428172364023862027037156483921767089841875268724574990856945688889430783489163324192184385437003756784904349104633499807060497250555671721349618512965752879222898562276888294341715564205320397545900281911794470988418047134214885586843781050774148591776237550945387404842527957771313790034015105121827167910672160242055791543180659120902668237002321256626534038923454390992237613549352821293123203661985744184797780786794642793092409447277969500827844787637574397308386310126859507496695989758621471766557953431091165387244878799234808143689665576653952605969872149662869094580042492426417237246482758652463652184447746754016999197961860746804803581530536101211764899348859196054321180130425664602291491929171164029952903090270063560801326114427809708233038074079885576869620850925724487048127453460764751402471642884182297012597415490509378705938408129431711766135979727472692882241883739495093378320088072237349306436368720662610244657261886791893139455031583009012776908143280236394680711831007049089227361582436057675344774813399054515930289817373002116551855701003399170218391709498203652046966936742851999423180804359222386402648344320725421921791996088854853667382015676799723773938583835012991601854360533786209002497433854737076986157031831080872074205498259762443636342125429081543728147972971749759188729270914024022570769362909524099804380600382165158719458460109544054349584687390266466008424710235280982450876380327701032332549758642190174478496865279835353479899525476009641888133785232733176031501833729608893364713994352512307326923152372027046275279005724936191067441552374771921252184940232363634929374639632723552270214937438385642128083493541913737943119075589602431919351824486092451613896145543255993832549129237363583940175430898184727945509517362249978821703588945520373322082342472289740179353525460039502308062589803684595783264544724748158087107703999404839399230708669761187789614455063512113296179178166354633704251661901366099618473072403652956773342491348117532178788696205012083905052535963982864585962908980094940044074712420431319837337570024815048607143497778711016614865133802868707133149471909134044349351674319632202611326124986228121059064035816125106859901576355926743748045856903607502632478787238518186760159658890875432734379918669905678098896967264942562043775716309632624705914044836055070035965228175358875049919342365247649057451641375456036227791695564916517346891402060814863585997814989478413551191758622683368905447584767639127225153655840111263992481851684763638090773724453288289045915475640593766261584562354529722220536329395135492946166344055052714298008441571980227685907997292556832116881256019152234131952967884048410714190614310651823328095023197943544574541174841600339807001979504605557511140152969527564675657533009953571648151878912932117277751170733261122106467413085905623494658432054834857727282255442585077402077161417205244816724292358783002609429727931123187187024189002425002827963930541779284251245617618523426369515274943350473108263781913447956293703030631180654042158830904623772536858648116960768458697875837849274692642120829239879771889257121086071376399456612099649032770256916804337868011708678327920342631539007108462869762457805485332336774580462797880097763828047438883332227657391540665084787084713501438348502393097932886203896195937459292331329228166235858254023337368177503998565060820534344564724019555872460344310170717853627866003861002188449465037061671298273299428474566928913978363546994934752380879554509052946142850427214481962164628467062857972917648170710452107035238929803717716851417562073988343792796930468738058882670219573374259741126197386103104453711125318316485461400503639418893160375250819706634907038522304686683705032096802302929452911510081024068136842386757678073459891100088828277489897767772304649143672375572820708155319670023430798559615639922008669375817711902306112358648948783687461407875822958984236110300362799995423749390596173267259022595227891777220404704565393376609916047572350446155660830150530326477815353611336847346744870691390324495633117012783638200931708044262841360282570567260023788595556532558858193055927629729644569051226408743862809873299894574042094323240165963909458613534477116513873982666398698289922381696923527938995421195919018824852296486363094531061296238482947103431142043471573475667051825113956437995921182653184454208493288629368745555515528846810886693393591157495298734067804054968425311180175410998092824191908539758255486615742283214411509268285144835833697310727330555309774559840916265226364583059116383661084418900073892573543452980882771607282838710045334202300791172720546155481183352415456181939304332152810667643965748941028397020628884380188257553208592107525575990238025079875085265451470522092657199477819483275217289525934047813318142454565217065466432834542291530939053662446149609438972461584467221243271382359437885612659085586474488606708365161458249113046628144847597647913850923832318541929345956121466482760456520637064980739812848607668353838221370995305895133486310060324965824143964277372258377080464728352446878003021422478656726071017482589360224137386609386135260384617811324773870404257087677457872002723248937880852815608247983296604067921760408470108284341619823574276865558626781842414171417273892119145810579821159291485784471051432085686771968163576169680942451969435020979644081882725145916493477914921030351367815185339782872069649154613936975580054429492903837187165154480016990102540624988545646416189913630906609205686156674599216465975502085354491024458257388354886776918282827383712272145032335356521082380889054002296663721903301046642844801086784686606460070009508516827561108932439287000399580090747762134573743312799344365536519221922550607965979706681847080206689610892652946115024340921823837984145524500789134038780449156080355970451761993196388584202765585828166636592018001895882605025747052220124862090413395077881942593694179474936778825122311939703952133365404902782809162235377325761358800778589501939848062709058100560727559337707019444672371941292533254552885165581146819285031767830718828032779907750213238786535859505998144719436820327026617163184259382812873348683259635831882668278215845240972854179405904174484071052285728042738514891797888394161437968518075988063722052547675780382256962744825752699142459031862206405882149739145232440705187505239341439266172772599465874949599612027548857515760457709366097648707442595408531474827185463274327016852084029662779496788521018859362408285165338506837919372529904504501854718082538295199478580472237020374568331457661389270487809676130293703150891714559788080826093575826819197436479472111547942049673170483617702666739987444619612092585600842496040940555806811636928019529657497764995969917470274336603130449829110833528689965863502191415870947787993654248184263123224328045719180999682249602160725398116502144506506383609313148510068477111616452964277894836844119420031210591639927125201861475013520547134781034437219476389449052328907815840488431651993165532618661562930348311298567540592932584072489379265927879811084929391489269404144467306274187891481964380297218740647289715844499272377308694723224835899554053094953100118776390324466694886604214684481434700626542865887026395215979325552352921518785753236514007585059916761933095403927803659794151834153503295474131520363527813925566216284649464404851317655164052674062037974093134245020041873314946433880876111308410592290119558273484710959972197437711853006234482241190230913594864184925063410680590167027841570881314706584658017222881601773018828857648578336151512085908007712849388665474752075751329509380451009490154320866802422910102589057222341888943526381240870304828540390253007220007055616122491350648763161404706297869854919012326791901945517443541581379085630214116605724403118525432164223152178356121698272863341358132063850134457081029094759173705905029295444788447536539892304519182265469104157193132534850163102069906322701037568137883157796685523608330939757018108349302849143674317926158094142418434033916465787028922812892688275618379195742221904919307731176113270198243906961138775629266122290811813476144821327318743506794822447433706260725422038824260163921997900736874216602831893959914144009219459304465528079280057691677593985644732936711243534570323210540480319613063461214922115319311215550611170004025129881093192042706940899370272140185908651877695603131295286799284625350488506951452124407335037033320396919638485294800542735869210923456852165062814711983519651276574238931351383812677487803984594786807252012181005407509540552074687384309242282929055874990881337913622918299220694566908893582012811439378953943394853525732625356511624360807470413164559032878409231384378982053193101522400418940142555716252112314094497986411109376814214931323682056945560631321370670596412098598861362574232712791282790636952187688148545714062381720905743026953775211096400468460431846909842046402380627006179124023615734209069086932006442728396083580881397262502920508457494744643965228033697053075341835737204055478877867622984580993953719436040900521134489351183399254357427043597934026007167432878923762306732397034140256309818844098837224112118659333274499454200376435309051024363665777389288854530801253964112004355249325882058327009146747640231490590030520169834859012201954555684671658381731638009118332772174720929758087525222734738205144463383022905446449395061179422570414223766143571145172386406719215856209687024711375499238768934437150467439868862052994652336107419326690817712754077419769196370142124064291127065917630086390680025700082517728374300845707447869487382345987128112245971477216430948833681943328799756038689633726518682264691015123389607617609136107300574744485797365257539449382580063515292750742443318229404622866353617549440297185740537335885766794306668319541515911736347531512498643640126452510863915675559114155989815531443011056441184200990880157271979678279667878983151800456593222229806429652280538315520016445657036225267857910976277028316215798963966503916910964798881703543467891695329405684152410347054732901483156552890422324164438852729529097257478057841352559899591134601439059972366321910589286982697627152468983975093520219342762682532335022693708214008695021766528891472470404897945999779679141730568784664061361277019614540137741247084717765187646305191531256752391754949198669208683647273015036549419962599066287912103923026994618750871026602174240770212270660864500542279898941395773121163823075125934556952389001250888013406407925143016135557034192218267230075223170572774575248833921676231643476192585224206026838167818611787134934638431454568566686181078964500589824591619153424260600521361363881530828248223258118609919004508210077007283498054918320288539805756725732687971949664338093940834472035217079878000703348518727144417628133590321900207657908596066757940921636233297648389869039333132698554353929818585892048163118644473482491788290107122454723838153239710703297367611972004208368122020795144431407496756377620232872917901220864693533826525733305015897538091069688347497267034613768159789053769512455177163865556637384284823526543267632775334653151496521259506974671987759875162047112628873408602140115999511845641643530127579751374265715028565447573318890997427180052981320592285976357096766071817441301021100787002751911517226347875011298852077285399270341899968127772094432358759847279515639721723895236071497712638418335584720289636711488017242494321509773783181136150341790211187307985211112049191255169321334583906053264111076962317460029095358950567712252592448903132108315958006816091251154123115381059340205027988260583695230256814297885306031018831365590023737122411427532503558341982359494974602582422563806551725512679962374205630653257939461930266057888130004674226963173558966652186040724191881864034182853801326532679660886618102578366925955316377755979824800674858580269937943290602468068999756834376995271523008671360059880052803059937698268939101076647227327993484847471462553405237926799220872780957574642969920469703630514050292435395010864405817754548838581677957406201782741995298658711851648660584843651976835593725325416470791697229721813635847852910618960327854311782182004168430793316426904921648157258052917730298387598332003036970419027434282625521365500146432635640559563128506550173350551380952773406760173876600244406930226566390708483875714457879401706951107278872836560522579530375456854652772207446433027371587037662013239640780643953958153289602574889359820930080183908521852124406584389259871549277366007214214986532450501331767323124299434700178282941982057350683009064223487673406446160172255073016084891007207954311968355551491485060737872392546215797604428657510697224561228437356137198066666473525307316506209124055911303936924452981163164181329626207326562376517096888762812020840275775289599731032399569869279597649411687416249543809378161743793214653306595192868579583310107149446792410592519100068833408051029165327543863687059754909300522001599479614276810066875854715695984852795671389114670889015042071660573237452107535197489168092261314461398002103375945947572631850537168371463593890457860494356917988755067352005800425853427782482821017211930196412778861465321865681468495885834663332167385538954785450404466382101274360564114165690381086052096613274322931032359273388445373418290783691848751554462057499391083398698998807940940059185988162926527386640480390220032074930193729304229814410088641010896053505523797386164089018233159796196019290825580734898996809922032041849311899190445689370316763036006437334362473564174615088663240993577261640732581177854766568816982206917421011554600474663864507424582102601608787186128872439543486001733799853604426936468598751614254450606677471213134993563232826581521340510120115124890174701218519657893365893693402605754234442199566469528530413936797608519469258982423136502512285157480770459969377018419232584378790789729927654134969971118404691054544718536878463596947832884628509336448413590354986067278651534455423818199919263940444746295235434264655624070702518043969302697271675522466480455974527822579223473220148870462468306258327063079944284303906084828149747865701868200702236280341967610742646794244087296680633643180507078262014370915853421067656992659405892497871746286254139013827026922429701717243115053904677287055402357297052450474273075219827762324617001949507207117132761013572175981890290451997795610149900691373912379344089448508080077542150730000205744961088943170259096688198838542484353258328723605868571464738305014777503989409284399219965976148199641087350791197634326363432848165125187195267645318755943587117885777467319370919518528723141757294289608072386596082528844257310090235900526365386072943514613560530432499800342113495656759682884069405732859411722722174669628957218794459506584062020102739799334892319575304831125757736633479043704575636338373085567942994136258685982301833424459560821847433559004201711030841469746125804377600955101839404181831305779754373868971515484721693005946766188356026663354343104415914402666756165043973906749281510264371037813201273397057246570497428443144761209606224514636304918705082563190916486514592396938711369583172827147781275522486215700046687649602904748855420425595618154763657901651241445765568650739905130398637274391349278363277731273494621695412138183364463296443234336830920848339308883663571193953611787857627561387636206058190581678818795776262948506055374079016394282424048665429545001203449814128548441972043101255457340824473671956880818094594464286339589557315556262921890534700537285979856737571627464048853228008516661207684347851280157141576604579547939017567205536295044931308307472471979502271460741309273441624496865473830511380181293493806788623695216189407155361808150510032081620886426777087201391397779844235887357440857954875326840449835676823542649969245938550956733944587383460107245141230016862261946517336362759268196693448143144531600587290551010859764958520992389247564832351933622089032072551278406779211402468014163301259498444906137659814065417144422783117436909606122054828653257573859066050857092547663369697761970838777497628280755715284355491311562528035000521933874192571574437233965016644159714267954339918335067979874657640164640349833067413945536959558882034686891899248632035382854332986194076474505649556674275004825537276852743903757245344105469228230455049122929725938240332372845093671917803515071312381634448032472293543228539777961977918327032846386611127531386654637516966551904279616499245108012833960223431272716998252555772812647800171370047587361347272433266701175508539349327058577259887124063986520071805506286537256935166419452937414108743629681749439152294940980929574103963887328316909493034879972919466017089846458928283725654780086945315049501434096129064165130259574636036421803184780919115648327499774423806132915844957414174320102910407808721876568417826223610100658177833281085306094797367732632282025923312209277500325613978446064317110355928885385124358177676099813583558019178082009761613699231886044516042664508240365630739755587501724211616823951997898392336400567544088603613288539813298796699312743438659155530132112219056650848823149612723135617761549217857857172849778458454805809549252346872298178520114503958068053841414753420150305581997767671177533828772015927696290419386928405978658771082049501055955581792004852471738575122186890804683196747979129936236746442060067028325950727240659304788641576732769620867747677830287906614817224941785662928681526536709859582578399009072564878045007363919372647970304371463954354302141594142712459018590511352788793427009336545561289108026696350448443768282696900492058877322337518536345227863109787047156833874486159537288309153065963216906291363533415077114332941320455458831175965196949680005499188970472053700453304523081761385841808493758811048667014616679097855599573520551000649480524191992874162682211597626363642790582916227563536015723549707419171722615721368729029868619058288949075779076885558814441214748563981799504644038405726701018468232576154978197389480042583025270798106922280754825371996535273065820863257745737479052217450064545119991433816224943009059683197967596309146940588520329381054356774464249535875265674674279902714835336364862078635460908470855761773680073399716979900217337091156908602383181675840872507421146353013761478041806640598363947420654247762392745314275666692631878643073405754547024436173231559998520270082874344658373417272035705900436800815983810962794655411471242358565458433736026539508450799051919397173496032699053241789530036637920911788997584606030714787380688238661819779225872593595834983550676233989090637566047094270631831421454920007444490591095952711502486437184190586312011734413292439662135165765912883733940904688090019711500972216458099140714687787782062625395241010341421274235638864465655438358279068859086178616161549972273656271326879614785198361609009229079046570493591301191508363865753771676389972363641015789569813327391220535332899491639498252447684349143707275027699910860991365391909094873465872635431353674142038403992341115245001184031899623887618410434609419992192539946334055862021718938547151877114297051872103417592892541357110273391228643342474212833540639004924060283854409995435031232460473940919219461873785722130227986292779674666951907885797129041021767452910358539446982650373773038113897469993702011347027331290612432596908491651098594904567449316130055930483953968779455522128555287063404722468661597656499994918478990173018322720714648343270095873529308681237563816975658742565760455682354292201107606859176593500568410131642727694768722414985110799252237498340952960643278096667869327813561930138258336706543935592585940332117970149585500327398446201707838131112653121478182005535887713260264545483475524103465997125261557040276205554570512863472767937749290055360483844119989638803031865750956498169772286774516628508863879014189640491971431182691237974543787180162615173436653737380204805546156922070108313551701949902993661018197576244230848310717065507622611722097507288099297644626425431455243024173608400163167018731733108611059727013149202060202799796819037371750129159392959524745342111928735930639951630199885298815417418671086420654105456896137550669992185664968653750936962693532957246770103610204826055912627392640312451745715489480428898465196177351715013609193722813137677659657207662834653416047976857058254214234153840077123659138660752611673785782418349408305728560353662083836761737794107531326672323297856945596918472602579997403421652155074079690656642959363840285310224983750644419632163227105327183409739105878596793115682003895938631469899674122554606070792995329880972311041550100728411333801083277629265484438882051299241080902437789264268099364057199524741854361781575746039485168441236719177217691343043874099611369682912232634692211930596571191535587954929262207477421772936223674621963037175853830330060152396948856513666595012694211910576735802176946980704014051553887755727260558516980897419906896479017664096059043973611926253225351895774010986803029474008036991367163423293613278624711172524932213556864503623785795332143303186861609034647042720584394417470261453900306295368916347422833031010000627238415196292218455348747110004270907281634217630360536101949080591213548468397248754790318128685984965945282803936668314652326433480553049859650938537438164093051322644417204302762108980918634231381793247826429774821957488368338785642286786363653199442843910239063012713160118630696544114282843365413554082212591206791663474143311206275435682102981060294771739913670950540572736284140823093627470177095837776128839295165182237372072856789030726130931624363156480404911339415866724335232971512970544162305554691543953988532609997392756859125809367709563788312050759019385081213875436695312082182072023686624041736983139300213951648447790112793436043732774681025620376944633417481724205824552704524571114039029505255682216417163773910782478787369805310339587819827184696955674644068545564098336032941870596976572941189710444116015515441019729745813290510482104486397895233644822898482450486730696918857329833192936602595817511860540156443974362391368468735700585976298796658772922559283516794954063884712694463861171535641036185017619683217233423273213202043537696308767716393084032149930769447817228725585764800265863171095731431816632738515089308228937376794261018174003512129775216148924566531690319926898064358882701673081879355323969565078913801136441613848371783469471642052254409127844404038980678781764682404299656458332496677827701096027479694300959397360423296057119516060305600595815018023528561807761228242027255227345209083452754475794127104037882123169370558648645609378182412908905572407280815211234732329373792365477639650195770696761882454852176782969821688256542055339146526573366582755764716944131572632900444986969479995848848365260259035917590388064413183956702565634341785961293251600038551437801572408061584280465536512375451061738507354257296595058883980124166260713518158982359018209144593268799339755760119455151932575506994458404795283918249396340931617770181450801989046871072742378130908803149523494831719706891855952601484981137802751952532371359897675335075455216479811022234288471695804291794278054738846143863404801790129743400061799494833379593581569637754292831604339725141384819804183707593894392920172989121794073818818252447307392069813153726113598524235158360096093204831325226457917800638106044336624200464928347864330206597882548641451210232396394681243356213696703484941864518291196361022552050517669588167922305932312839128781541504734248592440198852593631994015305822778650358027540475793282267215855203294126502435473289300777726543653727562636413307638900711656350918288589339621456906899507095750160173248797976032740480679651156377927100106254942518190790264064816215438751721312477429929412769982240321247574726111455510216463592645251919862801554171600349247787536160237360041022172031629319620882772132412932936579958064279777760622884437967516322633803613952492367453522710512216236978881571664544182579667670157707263191153003827742796631666308707681265309978522518270597091116750976790494597646688564316802128183919604167526858143078057037317228626401906905347627470462105488938428101302719882438585579460613564367557208071012070544581747584774071551814549098881763833137089476525033071550636216155459161041568288861379698068364945447042853256704958729587804655915185607849909539329270339572943169571884527223617956589230650903716119192609729972141587988083245363424951860111873927859351743170718072334582882456152592347895138059761314383432910119680156819987559565517328279022807742764587043778663338929244744855370131124624618070551786451329831120056008877962914704958795115776744018511720703529317179957791806995488623773507582653561714492279465297477563696101188563707493921050767568822648711091925238715504189835726605848716185005109091853525520465765110475266384315903607904683117332478842757537160933186097229627177483235344655019964997026720417381420816082504482793184019253027875348133418219271153291627217890870882926477456579898568299640815330840032544828322046087574346377793933679378220076840464665060913617061496526157310929849345199884498631974426011745836926133497090954704877322428455895936323809176163296026273505777947820052914580580710592822611401488003084073346685970567841424299114268197632818507162489677797395049391605016224592190796154463811360023819907052033354165823845912302481420356821975436350082847976807346203251877855120873985238706989871729401190904447665642728654874038721878915763432743494121881253727884580321321821395359554647332134289439110547465552510162531441649417404413505240513589069946595211696654030733564483670851458155690541465976362768291207972428815041860715042659147456087146740121444582475737764332560198354755565268699637666483322591113737146143466844699900029124258426006733711839596714646811021339929738712042242207385219862819412696204900423725284051349266649843730938367324497245992280534213126443786503939093753444357254634625557301517917915989844362742043367467729282719039300503771169849463097382792150870281646168890512173383503163732060603569703452591308458674484114255001101710203155067665436976241652998978887924623674160965359047793607430554899259165331660010435458630581865556430608167534314730052020797998837267654531567991634854029679104657956273455513063616758542465210577839825352286749821254450102618774948475385836811100924635004954011930877132370280527683188024211764868079280063490947421014987467218808631252375475827673129676883973672690018734840814104702442208083522269418311535361439650085261435367205381192669168834819660547330058939927443459110306145824052418296766632432184961124499199699962473311220225533731687382419712274807807237508573187031864262909232889228491999435679297135684341446301167408355599041618940881111317473636314584491794814414696448219905335471536379724047466280528639875094084683455019785869504806413560030189078041679792242447021802700146627531671349737197153139877422586740642721487618901238223979748677742413855121492313251164303603313607765332415267234456907616852984971115096704357491861884028523785789823025096757139382792229218499286630877155467225913025058570529975762835073467661268406999012588017459982487124715420797294738695317698875407434124607697778922335048940556988320672000719455503543281290159755381359425148990779054958263301764328712560649262071758714865360733981124512737651098274841810941158010051801004495274476642101433417721776423386452601071309241716395070542910277421505308179457150613767932286763475569833255543678942290337672523849162629199461724036600587305962542782618014480362669254228813070529441275770785913793862523851144788122278090426550030999713777778939853322557371064316459340936513979813374973676908084470152044242250323492160714475020262959599378883611437165641910425531416607859415452058309672562166493089170459533912355039466288464558294663136999435457484763028845220875635385584097825679850829513611246915062477058377335973844592673051544972376232258912987447596713067039462134501258448986789319120470631704601967169204960001721090519571793730377108210562913488445716483876506392125050240328315382327132215592838411661974969620351503780121665615880951715474158740172003416385027543149540589279212564466490662498237396161404481920910417698122373383309267086395374296990591090019282927917544973183779920496399844923923270896550495718555063432597389794864323405164497598636060122706382365597942287760594880666377269486584639211676210999108416321008554802087999115440951493395510356630003286258216432239379708684702671020902595825562625166897873799346053242686339329303589024029253292181846365291104183134646777282568842488937749026797449450914771402721086595192453378703262339942810224460842857485313593975814958049101437916467555604304738859951939985397993112236778630652622967323459185625368402199523645104308143846870466457373436061831107412031121965073289960513771317477333498303606953887937871961813931657982592005391481128733205518352192595694065534485955411777178903626584077492581296483138717527543922554559709090454509907888927119726158343464954322510041817625892605323382474955834467857183618017926775060608518380939435232433831285099627063240686137779832383027289031286262914825444052174377068599822059709989483689961188734962488832327307552289487445130193838384694118353173673018127059980642625543952083342486200381031278665489196533592931667940271682337731185787497980690088211278731718836139872311578155572752239092946005907471664942907327115696972156054780303801450000289702053203560302942167979517066765314831051441432569692076610708238211003183495487373978357810656213988958209674942021136321533759963253679120273493840564544995925337050235754865638120076839157257510643099591165328659941506686628363050943218372118880537534234959856103787716272188257192316380651530411635721664146586626931593933616435595183926638110625536012104205058238345535807926500827419328484785108441363482701341675371814914743823594192849025411199606916498344619153078160122686866608952170263128389751172947398549001974325697228860323180324505773381509012883941067319411166093215093213298322826915619840325753477942228498943005190593481306787689343999317589021651065735360519450375510903271810658220575488951731506926429446473635144898269996225958796746778906719082456719321303743458162116916056618747715883725152920611852936630987079582979024754290252263139945541601900737960452801142715842987293620592423338070303992187813652760608249515131143822471710539772460026610282138837003032832103555414796391190809545079976046106715899419022260344959750258377781681431971999890254657890394018852508884385751598970909102950364652578543449748474094167138137605337543390009200525420369075646157281494843540421447851116850406383532214074470965557119132013919909014049200706537277720168511371709872154349261852379559542037840619588785455338946171689800759428680897951418754120345421053969962619245539226695179449039017821953481154750410074628373942231761708090252856064095517706858005662748026062857717223435897350706514651761917350165726903004931872559816626118493535418014156636089985048275553202740799552513956021083243490292467727069876682004339850877785942795740974576651096567979254923761651455027119424625303722197863808354420224882980275359041688280144212514727291591148527742348268021790502977272550745350493471020961610819552606850812642867416099605782544447626050024666823128771259199142442440544497471732624532153868766590145421775427710495498192070076218957844612811815750038865156992164956093212544079773976050825575664227394561916591773771046565170008356261466602507313828838784582435896992962807926385708983139033211634000725243173353748693808889137533575212081715470085789736454473497218061941617330833783002472652469498489983098372821722139928060003411634300230351194753162420145381065518672121816108134938520452125106994935044681551729060125745914375832623941441768527816871547631524385053207756548248205522903907954945531643157373598304732907960421430451801425834528388030777362852492588465581389243767182695140231515232198290339440333965185965235518782977168169365673156016056457232076402984726266585790699305388176374625150597955412372651556469901712977667879110792930589751312962599931390413884246153515227851860991005453736823778173167039832210247811420940108301867994223969887106498984844144214828012887833655505789799281224812851318856332536473708959607034499512509676837937537834846867068013411831148961026839501856274651514574159481726438234384052965306064325839208549120922551278044127533533918156919014408684805337889275067422982735054177795898127368067106068800950250939844044764368275247151874861477364206037183481954222510041394623573923702471865928738785096217579314601146272063212568042648600851251809321542719806106752202797254195044617873419041709477133413535042396948353532922947767716980484175478241247854128986322049439395205034558373264604825037691004127537811105587480744184127989014093244151341870011677604622101270619126660399129864177342301474168311591231056281737473538563609259409892503753217024115967943645690492374169254470852796862625756019208333773412554851764110351883522618951874594460133471477166833651249567433391168279756684050225398781923868174116737117294143842937203303158751592872949494781500315196685176232573797280438250786018179616613985678612389196554330638398898280147754629813023978887843641899895922153878780288374044522059689826158057909152902947899889149507588262419610985009690039594925217347537949688874161199295672427102732098275827299271010389712617554698935818284732883411539678145305587296254627301346157080614704310684023200555084757666509512506748068442381633851227161294457441677745230046325729627082650944958022384249213604405713863666029292695638994962788857877853829600985570060112236183628197539050321544984831168517708635822075254650469576914060884512463024593320967129851095418166573067883195657620235832611698540611414418218147133003125177823701265597034191100003108891889561944209264821319834239580691629911932202041625832905711110115746813769782507942219158109346810114679140822459106263469492611054565757231575858377673594236236845444220967153987160936005224972516967187209793919728617694251934007544409518629967949351762270671707633310302285228670095015225308490095650350091942794829599746856329231329959657508769089049818114292088658093605806271645503426881002254453690201077909128142553466924870271237437349506812048669477616830577946332329001178677291536806290549465939635805500672636651392432776771128174056720207127635596333704375909279794989656312101279760087687678291586848127349071054423685002585168567073086215068512227794461146684033148550652679356862346201612258466807720879292741391325061144325247644631310259421675725957048361571460387708492371400101992750047863893114216011591842152402266247780792755895989738847340704012211957634505302651921304319580749474159082938805346231791172438485300817899066724259849737511531918046166598163596863818272846368427935543628187273065479744025268355649412056945553632572405150366275141897354314361843593477957825917738550113672700985581561244247209641630160392590093850301680934289657178504010539618663972533939839852655632681651085849784821904767814714675835874240162736690804228873588818098926640504358314712856208202868999218302782250025700881323900467924870982251135319275165787552113904348645510762350764181865647542558782876369383294103607259346609758355334554944585577462568486616226094557016227895441069208109295257759290493579321548687280398812769717634528813046735897713959637711337941210473033224218996185871242471827141252667055916415728722277180213136202273522540064932465835330205363896436631380783853090706111229979259545247401656831466423228159713866296738519227738058809758728044105378958379778652938680015077889886685423651045310792695115177536444780423828635626548835092745870215137472159479426436499840109215300325976277298739816115451578532140972606135691712648059220543761475248470489301929653008839282670761093117219594855621439552812972530804516080252256231920714076153352548239503037851283153171932335407355596366294231180584745200228667271913125121135719151603017412442362630211742315547792880868447140008117850604580472287251704720053254970299555291893344158836303684856047639185265467397433225461499415729449200698414092223719266846155275770872322501601208408231803607466050841652481559235690962801068589959192800891831477639075644265977388696188661974469156150823164765720373372569035829374945845533798716958301332386351095916017603690495003308454974584946331541126013054910578519635467527867279104166339330233245695266424389939650189902454571328347513304949427574937996496758941981572378648254698683964026529862774756798444589517414495808953992459787652882408788652543876958201110935225704643544672128267732814919183650778812755117718640256856665840258278900797088041962324477891571944103573324404802560970941908174755979269728622257275263033272873615952339671339780962669966942315153079205955229639686026644773747147147928484890109848105018853305754634614404190199625484458010549418861933173545318878201729927039678249720152001663534523778788611136741307772639463429813363472652416409652122541325064767373057132928945524286476416826081263944993014107192688833737695368547733776356674923211414353821089832088442387117233319074808788222440619709838800616565622970504995108623141599247347638634761775789466621964552165830858930059423735760722932714873514560929980653670562188627340354878999136033805379417360091808175336892031805375063325879460042787755012082872386867740461356407485265778865377890626613676725400430099621168047789982538226297619026936495396900076167342138263535065040629158139485158999327199732597228800095571590151864154217035910723513518122773287474723720416053414761136244006423359486456929192268961401532769437750911168107391974154834134322568578795775940369309608735543324606304057050682122517649335593665154435865316753710560689858247160208689749370778067343445727926430851978307800523526740994302863764922976447731283522381425724604131939807803245363480506066841745580601441807109442548516590898470984872939625666976115637167931587193335062024947295999600465146444671506511837265461860301608548766672223113329099098287014362782562224125452903534916735258860829563330822007472673066216909268299449875460685767234910215912723977366558910171343108038599772225691128683036666792473901074967628086078960961767418551965640892878549353245152692045336874023396417765154354757276355148088604571338942832086676860887809454637411601616495744292816590718955992984638869936806586506026645124032912719684889314310935310008871671928087966537480513347519625839857337385646210556806767111563262512107250651599354006660720539056655853866589165960069999226329829727190640306011143718381241597759190016763427918583865764304047513981791096238652846203491169636023763277391983002413344818290560598620651629083171863330293489087640963195090871607225611381219392515446612226394201960796386394889887324286981851554228976582507097011015251685989760136124647645706918173593844985122848445313246374412280792745525140601263484166094087149373783817930758795022954337693883687860859294002623811195870701114516645027452606654527908919117794922833384493487627065120233535879038955641051824924720165920041967509392002473449622968955197112464605327122823823637059853268347136298657675737828514610703397894261537939382932281524827266033227131443315150977229678244021731942684576946656178324945413573755499057374734121225809870359185428380508978150613043141876577539412935016468935552498375210018537521841265454194408637041238469328972990103467287282271917730729109648612264099185730403734274976655622704413656208776057858051075177640354274228397045496096810663685010210025022801010527695955236620006446595926007695161231240663070506113729301389583689173009600058921265222227808081563128560914067315175277878643083558169277552132077230225608900414770689297174206921971085669870491712168126278145806340436753751182038671731613745386472112022869333439914931005086479809416643200737925804640051599310031736031001171210909426103867114370164521897863799670320842185424538453281061026027416801665625800214325500296957961585513951382532929117687969816454814048136759816732857906735293218546153362749709857383833493846187226285952096817893831654670564081136937785601044996834079540369602013183910397952431425563479796671265113099370509631736327047304226797693313736591580312083853168419557379736782503324744330996027975834446980892900996453855804834761959430236854113695941805792057681562157394372081220093881455014729558829740181584258676380249331168883844788504507158479613522686917257724967125029455402824318299721854201574652465505872059792187520121408186845576722996523444955972581731555508403464475314000215866290928960254279933099588965350411383214445084488550516081697189066842439918424649771454618017517135849275126536259193897382557503712628450176189832726809400128008029289730704553392407209682544340199193416821833535442141122483883719599917290879206944213977947125995172365779010350605841105052672797813239863232052894626128537683389111314149794479102831861441120312145679987581497314885940965497099472362165084342034676373776906053958019470407291752574796581235274678249260969377650492057048259331607003434166889841718022603031618024111595887915731010732763766360515372158474816197416235882278892070914668948080637948137686274349953394716809613957659484516373981360611753887103377124417556910671734725920010067846859372027253143048597366882369844333462379172493389062176277740047922052590801695451107524957317957232063901428261618802797550292202148608007579359049713932376977644215240285910962987745735154671797513416303232057028875075365948644817318711873257070516551718586414942843685791894690877059670217217772312096019496136625119890375257073061581655690867217700053477290351120311775793649085196211788983824266736926169472395632896661743239908646979378028628684443536854922777417407314109570789186480344865415915765282797088341123789064947885127900974998018681572458513295194926906589127619453652748452261255090178470026472877541704338239639914216900703817973054306235366091152695124340080673074000789902647650122519841414287957233440696597903204481778871339657509400656531382123925017341826554850249087913206564367164721171866825618646528596274950950515562935027064285717391226910846620706196682075695596271369739746758437321173971503060286223532778856965545887157139354537716599414823527116098997507322683899587646336006942064788140275806685672275107580405796095891058972528561600087807801958596441333725053230414496768422213202996127278239815572270445583660381155698249797907221039466005581372836301207831023542137874988998548326271992597217292455466976402532993616452588880284860254063077704165235627119310231046756137565287464346157724095841628208513756430471677057106249208991064163280295855802965617544077333524734012864828920667829160239709678574008955292245884062678841177416065875129111930029132647356413098136225760129723046816613392036373457715840303284966183786321655158743861021703633573299939638822160289557547733469100354250282637925467643652079647465929089054292341490273655466526891693319496626403527387682377615176861085002013261225625640319187883624568136853120233566529549359910229223714433472629430280626816799337063926453986639573078688710995911599023407291894804132517243361757293201848703676391316094036830100641452526577224113877379996349425523344122653556047476974440845107560635521792720635971314514378573605471420095580618880062295323611989892584245508222674389829478741318368658219455824470529507543669690234689526195075893585632924169220446337652374526638863893395404374104759767598167149957954272030062985962211304568530718326869356346107974346217457702352734222825341780627244690359076866457813868247348639909981469062823735556104432284787329981224975490331788490831356525872992943639205935652459905708810222352086678784084859890274655049365744625305509710307592398621693084659100928044222722504276477831633723453820364072832720849915300645218321540085763111597632771229238698361083015156956052985588163919945796462525674728692984427134625507240659699670154939892180132840742135818803880569927414173273863620608100611342510457428639106347059228840903305129290215588287409942729963365181054146720051804255317075754990209638871914149299037329612742316567726398255375866684075072094999631980010840231142009197118428909578405167661532469492979913233063210235061072110611236275234938543649760702421803964856790951427818547660597618925454409984817197028666384711885149619691468933239033973606241018815223933835693306350763582083674361052132860123206738847124603344432571851972733799028911388477724388825231230463977177864198626392334267423606072241446978961587073983129598710447931144858006688552228536530485903284319390304177817262823844568346636304202081310814658463986711655863720115887164698655274933804524028755281731089673737954493950259241195932958365522431974947769663250692150998970331249171333372670770047878145821815424512518564191538044504594557334450041103976444348822806410421476256109002335104654432377147458115719237288031269389787340098377314900167234083485684493956140324964880251815648225366985552801873910173117894406534619188956204864296975860405165226722713288397054621144474874617723945458138902939309937354951957973783907200384242005923882370128836886088624942060122597492846742287613281688483091209301844015890847105241624782534758008982380508806182131847307208063647648227321422969449830908325912853110831885023368981136849892692859444112169705031191135693892303773292750538174186527240330443638988148106346998739471612006377408736999511295992645468192173846431973919112272480793715025040023052453018771141674424725308032111117077769287862046787068995626846253496468802696889818933939518891398235070347728773002196311326864576042456500330092429804191989773022096818171815436389275479497777371080742312756998100732789588161120405930494714672725650260358045742906520755164199861329243188786854408020863370694709930146936745256155966033549353933415171014258863651489366140521685674968786729320789523722599107676703341139056387200643499887407282631074004040088353829061368014907526081987582255720375772770076873613022046726528296540406793488948530140666676525676814224608234345284208026667609734871899844644995095083105307106397516197338501165089631615667280689456890472168972945777055016479314996156544210787126702882346111369080017231278619165466460474538183263006994164609899575052832442408256807232817633495917411688400054190103700422161831662711309566741808589232609521948556096461151459150564192489340595104176759213714572218173894174919209988845120359425454859947691130808013215956690482226167069837746372748480039152619398964176236963696382679136059249141059114403037479038485080489657647655547466905091716841259558260963640712780204084191733817834028628343347953601838243411010807914631077417920091651514450543547469255856984675813570056598783817298704035953395105173898597948689759060991182605994688695683945203878843269657925105922166174463105421565708609321414002803099670581315885359971467273230490822095062111538557153970334544724329616788998829132840060848240900528572090511287475914195333462514466094807677968737664439068999086322849546532065879632315969743540297923345962899093516726735152202330251498528834896542855376908761267674886832354352392928718877390854783636492437086217882221795432109837019443131739889980879069917946871835135149817996539215980027933837410454135042474655275261452123847332987018217358322987063438322979673849451194102344330873179791781157022245814188125398304378657478418080879878118615110379672409131835529784107589054006015849259532510785123723233638459449834814297243527138255727593225469074428663542533667973156505553421929531046510908170964209164227513707344729344012442059931933009684573959368568496696949284707527560015893937465424893540889389926936343800342835010109365213714455381088592316500072502962770724348192436801560655482833791696754356215787059762920421751546432652993282631133801124885338254128421461881829505511226792230542370600956737786886855953651970653048284934091797513850479568674315701865121023417885212149851737272001521563089732397442768344580867293205132348258188923703204693128398694645605278384590362992232425280482597721193727987138104713071539954523861433551399904394895187878499662130617062169783959414318460176126002112756068975565634892043114325239746953919873222143739872248707003457482214124302965885915078671917367038215855395127157200911111767416455073476305763712017017513644889315425351144311884852897741286323332280596241985616145322333126758668990216950491960482823420356043318193756466921676610920458164161863908530394157807804149481378632359893188915050691753546625991171722598932693021835985481347834639377653035345585268232677228993331456243525228365743115502318035588027304458851621403178131651336041273984214282801938977049948715845175932534772198178188112294365763855711081939394313103298125266361582186581385401252462174134309255908714755158313407784025900940689233075916388735966594415445017591256162947332398907095505395743939552102653522710267080772383911645444874009479790427664000269255101653286924263933525100849469074555593543928697770139750379442850727822107828730063411193161192450193308078494062276991883999920327948316572089326436715671931214685400167050137341001439165643732308103884746074087558899629653044063408712260893846624860951992043014459829449186542436831240826860463239779505927539446741481942131494615028624667430810716145896783367738586173824141265226944327471864833942436428888854155009826996788956048000421260192194948782201849148046355465198297305637908030017739166756171582107052658533011513705148983284755711486750531133328387272405272269112623560242384442346599281618539261209596437311006241068767957922115161580072768102998172517964917483106835967535768394620906492445683164073978887387477837619762812596717923143169065750409437570631844789506973439936855406349169806612189111074428023641476297962770287471249423817928607794559085091728367672423061442092181799028702123073357940655845758938788165325671609154194248794301678948559446082238148463094065584618935603876558556091555366700488263681896650417078159136197238163913372278002703376408020776223282864343358005646287282665227368301951678426370904120563253122784659299621091466130704944332672862953080593078257336470392566539714504384958021567819446786900372062155181165032929229612369741857173330882845118058217415099060544836686649086467549073228426059657422692201983577730967284814278780884521407755845086777932074996564169693393238320695729696039382829016598871656548911124022450319937784757559384193018478932248717692444523951086243327916103382544041515049476362595603512368576810272236000017454231448948971370722353944520570454084166287785723013553633931587850434945704668213760895438781495264082902643594505405079354862473775378553360507227926137166126514698349552623325264163842226518253659540803484961691491137091050500711538574125107908616719901320352884063007782787113965825982528178036804958064018955286802488864133414419434244713375754594695984836373489269028554692945471417717809856576405782108718285207123816136325309927217075595506643467222291508370379061804395607457046025681019324357161150894510448452768964466845038477003448864082606341979543152213919345891298909442187004152013087554800614001812876084945036309962758375921197459310292441578251471282000034819902113634807410461552122087904920616876990024878613378120471632321403172205851698520694643050763691055703490521090125887294221715254880263945644158966264423084426176030912781953352518320553132699797683541382826636196793892762979363856772189858919465052135054963666229504414919984565197892221823459546513413558511720344099376972662194826792595062560819143018846057677840367124463682487349801397510611785352128362625137394688197172914221304479578670478323452362446033955597976901230020486961773219812845143245786343067921481744019779625237499055636692162687127208655360120009553622420383859628128325184278242303321701143791755828199468268903323745724763971582347389082245526213056841061319103091130100897675960096092213450900268032505047762228715744284196820080474578165572495283296071627773124849494158702532359354200352586598698456717321639308652115192160758846151453320680394233368145315738048009042112147277966308152730435361848132530758807200873983019474937235937646717831178018022863316277504088039112279306467078721448301721533233102312907445119778133614380330255711678533712634642590235310286783643680731262427462745383338942538237347454881349152316918283291264246708212467091752187836660279772617442785101618046724956438237709094461453769073523910155474015343493103644964869815274772394430798180216790422976209749959404398905380083129919536462601710864394475977708024133454189729446140494073089950420170437384494922552126124329154951101718119153359267903886798453671087009473299805687262904870477813065425397735721606669231591157576833522209956960277475194562537591639036052877602876386722966108029687655317669481709988449147591406228147398102286241389196697770155581101673223820116169926938905087356086651764928286883321644615059489366930865595240688667502062071027695741510047701155104260047198445691785053737778771957437011258477193663108422817029966871416409213809803688447294774665427154810226447885057238113415025120663936625946913781412044964845450568110529698923808063094604124551235394183338065692446893234232933437288691873564313706646319404333556728410208782632304840916447843704054871351690706346674572794829335860831759963911183853767324277459142506275286209691906519846276314261068421806897441490759702205341609361071206239899607030243486425256938147053179844779132651240153788330194241015197268354823929883385839246674101128918546470442752105365033033257286573831095684023927170234763883145975806214187307979164756871151211366084035572658263635942573988130944284919851282922485381510579264677191750109813012624235033788027758847631493281487423767523555333670351833840410618705502867951772324325545848358931163418886399457633001781506424374132896905099413581564409161415125461373528896187969185559119338220492821968908662584534137377656777064118939008755484093123250323815860122750742990813881323468505992005352950191217766257461703085102011107656265289176956979291093671079544322584929017278687608546125733062311799588654326620606393517322535311541237024984210229716182613021546373486673767311601992467889463627722008929135046599438787594824551139939099283859638236844048941528610126674985842921596247002104746079919499028384041362274753968699908422200734962980124047823372987921281765881515158161741723674713400919203281837340628090561562218858759734819217842702086786526186901308546451075253861887330155587055523151575286418474034789973291000975157951683784422851873711275510999877220497429201324886178060160222604453457910074810348904356655317445418146295510246344416743282225457575824695311404397969443556180348480223243767484357212264381134183666230055182547142329493622085363315145237484383730324382688660530560926426635567002905550696562530661600024577400684218053118375328810511249911241260303911156001287441711018870516190055651953240865056628402395267211230676658070465546397574706414196393424944281690401909059218793424915211785115265184149677587007218704144647736877059133355854250428405389370668696543655783892958864618871253975593801595107638186758971911232764679299947727551540458837070448373245292129098528957297716999769625556768999572163104793118751591756750121141684632319898651619289521085455782508302643214242886595010559383641100990943129232300327747445050024086142008190984014727313016006127244330497178883112448022261650741708038538514827677546686024337978053934326342596205818765295980634205922705915264009165640785718516449063651931441493175697746032472405473307259170425369411073767836270617829672575030951665539822468982837801310104373300512053176303652839300141427114175913467493503007919532643079843630950163142215090131518425937415134748279212878094303857886174384137503494992944239114325286862649728538976589409035514487151318600980950750251918532629049287588975719697832515627317214090882585958279023248843491278474640941724112534850287294274870767726308579102621074644407596770782270324464354502323332845279870417555506679491317431186156118837054544789180128257618726294710135204925852867807670278724285033442937495369155575697007903441461062356959061976925545283202058472960084693400226402003518245572971861230878710139179340357931372260166517379820461197001098002377920467345566264243227227172138986085580565285111387722005447709369723947112102650586230254713561042138516296641818193148113425578114614360127069824725501942749667522894655746977146831414709665060118030333353716158379430666308737354857951529676021370413001034398868032872982964387352308806428907784913446674257561077057286998293977439816435542259596772085677915607307438589646858933142206512403266750053895443567383421357422025089759994732429374652795572865457122660536842214832425415415117133797051225505648722446776263478256917333535899231138558901057038322084794911485265761034165959386156614334701699922045243826128687443080147754033240973941146250662474404520961165993871609703032294664888990004193322803158403483132658646596118397742835775534750928818998885055178407934154312250316427181764779133696396560287806606454567358327179958359847805457908116988415471036947064311796002671280246910750586874512504261158000894790758667001616176148055581480517069064935800413466541661370391897440213834344123072512985755479394758016769590559585074635283605460939190833485281202721254130244909940082219756256034177705704775072143518122994999326449137404260284998294557909291180127908220013967161445300347444451327149379520512600596295378050528875407067412727059237731923507652954509470552335022075779561593993236005037303089140784557717687555554765477958327351286878039231847444160270277684905764894343054601565961902404715998513076879079225185276946917702244180035735885655555989694282654054654733155203924804822521275271589875906472947184900450024213829034076537827092352552517032105238010165382983560239042991248399159601253014823640468366970143048144040498088418092694555707595129466644601377190762138586697384971123268431930705597444001740977065103628391734583814848083917142109637057314103988076012073251014031015686380265988170796550909277114565405202928758236621817699276620081760432752816326332091464145698213603126579839802608697430377236989486941515474779966908059247934457332505547979410723222869247435548563598715701942054843145166486757417919712649331455508087601320613815718019933765990414233812575530536482856811489972935306116638618808395928020686187264500594661094051711507704185252144448982420321118809654548150462283334345873990486540128841343220338385718260274963877175635238757543242908116830339437692572143869325431902285540911380014129568307217343230780728999003377163035955288593713322999010119894040174595943903160893168198275008500181133264977219172207418583866004101136808956795416435879970638904049159501882721765627205123888733595320229386994919230978615222204279106414059731422809978644817460724251665135631421701891991022502427309869797232500161744504774421753348079954861711424510577338596624404054189530100167431509973626671151010874252505543194063233420685080004799342340335090328337209491096187010190130983807631255363477484707645194624398796719993530365683833955877468516149564647668492429580917471820723021185036422477265696774558858568942639515397780479592803061046140443494000422491837532002645386758321305391225340040067824218008994482738826665122115288677761181272829063048062837096545810345146892094029967238915303152189215852031482513355462553356583142698908613057222749514197586681260236442544137425864137724316348839535202507713609270370740569871426039084532530663644002288147166771665309734749631529434641069077892816868214863625368200638720829706046079015913823228090206172810811274675254828188289210578632681736365751215676825957316731348750903734072710464777690736817729692907066464802743162204103553925368169508292429387402336042958121261068027103539851926548036505772711313238662214146596819281104148133870139345680613662852330000811648477905404569931801525021711201853882370610155344182127218424373278889551948794982855922045494756198803809514139844844779286710350891293075415118284760833091028415394872277352160110185277500950347827919561315884299306812744759658730080001031451771731579047912500417901596734092409276778850460568652893255372288348320308530306420211573849421650605027081403370425977558594358146824334409527185404109773681355709843880279916577029756183369734453700537137564193483879193567446096136972959577772165048008088560562946686807394156318625509717652121093435128737746949822752906219820982066483328242417527506160606580408090064266388057273434524116788059871389517054957915212220131764373922379328686769831847569989264861700293484229580251953857982738551471720906735235132326207908004930042924561492404797349706477030361562441197456996399795399538008801510429359509790847990608018975196128539596175037060141722570857550159055986509047986729471780172837419739683000639961653744990550701431963599429685069893702168013411091721769360593018878878310516045102700854194359760428140737053193992564594447582960419957909648176916877820500940425979556376854455965220448716103440059399486168073402960684272987297917557188977226743577756091477668728678854683088418731046998125445095697268287811325322801914518696672913093262685084739267308786958256041863570304334716556558727611152415404556186350030902190553429469077585965115333963656140557594259134475618513533272989020415765641582114225856141929444497442464794402210610685700412529896048403094411876755272499515635465349729094231284094421474152761441640106804908856785336959674803239451441793548565300894213752890318014023989936042482302477373097700822760480693318091367118670866082409937013091271581149996427822461750368138251037193179043096390018452096355871055967780191910075268441767706785285286565132762018570934160331115543553283851196982749190708135595289946739793732441549314635651419728190145516872472499388853096969341106000586547407673200359233391435483505966858648649503114171615941200328989649590745780239695807427152631942419140778498997443365547706828500845170482193421583110384070242732959791452501455155982798727135772182035852432423917500385095603058019506701881693318513136627172074906982135627504172302956857790144809361137943685841232535741986055577070362091869205484811695298063456850860339156708513946149043295538015923322644591532211846634098301631431069521476388380219878146034837934313995992547413249754935407260761730408664437397596733611563508844595972963907227782887762122511472473751268987770964321449071652442576324699483876680170449711643647409022687475545109194326981517409318043248471326814264568647093018292946538998935255683824701157772557690587816458187399145652038847749189221827133478622761252085009074567273692652600828626650961200133074082833445698867635955041608942716781589023192028295851108394803172593568820789606293640175237865941573404664750655236196106637194671361985693799088835952642314614013182450711383444840293450589538136334191755974021293771117027756088892911981036687238778109880854652045167248533089474192634892631719101527334071240929860828372244101071890045821121506635669062215375854273862716847074404839598726168679781706824582843575838105172190974466344865940100823937495371295255180358975561866748680484250239168633038550585615233348923618471889860449405151033579840185571095371644134158342281974511055418344349456207532705459685570931093414064035644546487295902927879415994660925756860786037902062682350350995292239430298492159806459122935915251714282560979235538268317179772520018838623821025410848634984846935823329254727248557832211067610203966138838094958493758226687878724993934048590537533588194292242216412237256351851400882805313701800480017822384151213048650471533036283549205869639666572605262859959578713100385590858502855943211440015496961291681126145191748929700246976026054090207084187600857735292731290989230586593080089931375427941935484205008814079676494483832368252153550237290938256722397789032286710175919648377227187848247013075975818834493828806470407742496305957446181184715989631946405523764607040371860636839207073346333860491370114832117755684423400036817036925191624046924169311684805627879726071942196044617504744127757925320222208559520781839867171454056353316482206997877122272157637872436836422559008771891797408828032631723120206356163229180452993531112204674812827470945594440285224572069151173144234167315891876484889411257182264505594828727258845118630845885152435781256920315360217487397492883213563877667661731385404490213861074396344131251379157205416399005611339704372343016672999296132400234375019351430103966291351684365326398436351906246709600167673280240715705310947018118674104659353439280079714543577889775372036484946282013555473412739255339194818879348188216794377907740234986613234817403482868580472940106811982066090014767062012430411352077920201973839269133771065180219882974082587818329205411851837519466104364317310385867332902165196885971869054272164383939764925997889562074008041652148167057695581333563118170492450089935206791941182621838365071083749930225768809286813535973811886151681773610708710574770723319624215248549696595092828384861978666781149843852459083082583289880151449319289802554295381201684413608372770871188700030221038687328094283542666942733077132299038171108490264433892448504199973185628341253663075830176391915734971424320558908980474238415082532760515281658368207172211834216212436052660826343087738319294802726261352506022332779132392851990641310457641968501391009524086359817936618367159799494201063341612354445992796268411412662275484065366109949123289213202118410786244082708981571108260611690906357291540171836036525051602574253595787044807239336261924613651098660123699651077373756102442825779725682326843131115578782366835309642851921299265116034177150061816707628659986842897712103640680611676178838586349468817164995018567717003775847920207177426363630285119941631837959743235523239028538525204491456539915457093875324692023371274032514811401559577116124702677581255807677556300221581240154970796196303502767666918718042289246920193409599487980996932443397870169601753872385211797452644509028114828202334939620687423390564169376161167913715681786990565484883254980220094327929852788418403516112198269906521100395328699135831607084204970732801683833574177227900094698572655874118267235688754555076059810651562271717945286986381907400574678285762461633053847326318279675560531544053545197636648817315847928930587583475035666337583650930264885890108737448504762020148029234402535808330106112307916316345782327738828885059036781529748124350045315761744223702694175976876492691091844728755427976559778515169284911096351327946561962156572731225932901813570711890003361286283341587789467102567850351943665888728264963429916671832077370058411753789702692316984052970486714706905985243028819134927036598591650685752701930234592871788235649191107027946276484646742920498121735355169299961764137784022891216880984604619789234251354164009792091970261263133352475545988497599048094534171131183492172102388189071671828805742371051547368674580414772947532390611257947834335924540736007514626667121075270582805728732892019456815332457819915159041026687531768901010826356860599785742038418343209399846950309900241782845140465576117633198225497400993995929113974466521216554318017013944447300731387658315502118897342895540807157849314341414981528480905325712376394050568726654640512249940514556927756281511234244575277478316033977723905037950673338697847083605930340638827025324343724451988935734362643591936089849185872423261055785918325648846569397387746950773791907660115491708394241797672281570277833548015406063904741953128284880528002102060580575380858098875785452842860750086449289225489066537437798478225918975480838584760846878169360984516502975920858560123705667267152923737509549551778157893567862409178414118558912037134276217051398058255698795395540578412491441558935357157285236623712114838911427372689743456385638332016788673471952324270111200236832189355488111149613787297350419660270020035131602890731570223110807309737648261123615674365007691180092425598706323250736382279344651735249794218426084034348195255122218638390553490408600943148113834714729268017430629506840407786892107364443316236620059658799592394888123908275429359619610576883999213682508616737079582592498203704873914924243714531101566048239916023868623927631260218908784326964496198406282154709899906435926639080444915262099475752447018502393254176640374607247310499105174415119260465340676948633192944790605494417368010742202835064726701206683837425843022593172603828040874756934637539582890624396445001572508596487916933874653511942237811980969773330256861117493527061024658433821776843107237480638016477654052106409434996332072700663027619359926881017579651193715025212236098977337794723991661589026662161984895044106449703603964520713624422860177486953785348376056926280773245072839094173503218660983552904070654617204543092262735279671830112038998429193689966093203316327754970312588839819550586516353376882608724235192049894346744942478419563382202464301366568781277769061465986331431024314229372543708240829518337176615035747861400476813790996258754299822969895296000465547211180013211912955836088188978720713135924650257283013507519185051435828589366163069413610893500813173949845863920748227078429311608325730569680675323298225981875950342068922175915671491182096994690862775684064256349080033901098598108718715969237359184768823713700390356543157630963436126890945417281727783419895992271649069518572562401372175838465416660074415027614620476626942714216684498369265396210445423329715796349742397491920645442739559959189336506048452421409160830498712038570134538871466486646265605588162634537733242849560923715000098596253296220959383844846504587639886000830012003776444718564189795063754044098821816924300191842798000555568650112516457643486545646365915225555945472618648863881185026745563848026567092108097428644509923724489049848416661511892500294703885648362461966535947601237908150178079881698757107781043077902075760205342109885344935563633161466085453950790016102371006658871691525815996609713989314089916986711777220268498110734445174080771609124433963252741351260337044671754067573953999548833689514373672501933080777188550708985982569212991207812319221899381304071737895613269053993682720835235684308874957893654520498970317648942953742460614794110071132393077873028466792846767196887846076032870714247769739459533654310164820532959178630745962938882036227166565890455293556194793467100866011302379438815753618238786129451259821947359627419261422601307198565356263354786906246168864901041780700873664688426494209118591403416922880453717422813174062509668052781548317734710246080726385540814656154747176304161848638711818191165610165609551525007444932253824376013765086887598202713228493790550891405459630189698821220167459658886691161451464346856770512636953297153569704737685216467790611894334911850776571263221424361497362317175923843888738548456952471246540039195756578624738066619233959405858784428266832978163082766944835399278418478172890938243470337436839951938012891985692751613687298796606175156693959801302249083482839218596649274446636989347473581507156910492892687305349978469432946970810648474618614995565143401996010503698084233396766732201905377409844419239173203019008546324639467849065621183629292534323546851119315659580935147630271924105352726470580486102097305696366009630927363244561195663713177716910958854101142892730228093499935569592259874691279906808009109399030076270515186372544333218314609319425243354633470130045278347106096030189559576400099123541729523482406618680240758606382580981355938323484242050025521964328907018316239366065722225827811793796852668102621025536724281005976845194548337670074335627312325964724279029515781586256431949383600748976304445242555401847030652344563709875064887341305642079159692243184727481603583879287716085959225950670634584286071568340070982571133901577882931836208619711688435425491503418503887579133165956347707093741436385856378405833843363649298376954486584948767578602214123654788024107212919621430519652442250513805236986173257735856865399262920539863377571265714249617207982530421263200727478151066708964194623494543742920157277479154001134182628520004453894495815031588083028120322833062596379065533246392162489368101693304163226617494068677400322026699504433882430557392985944055065385723192525094333960252830333094203177787511669405016317687228723876211723668008481665454660055830678968302334088950574866243342005171351294641822137671927483376423273782899264925470033532535941964538051814502005711690275146320419634008589530366870492293313485409724533069465637655734885692250004751589283819388307166756634160857491591762513270989914036454692075924696878047014105725686154638082180919582938012601325453044958863982249721775405462826616310692533910124649196870937248287139751401456587193551006124231165061544670033639769872468367734796150762319473035731305492752989940191976645224396194096753590682032415939199614815597225247582720743875831619009786306745971693952789633078219372433438660335466993245699976708876236931698191727295091865942709780901831787711073399249449339579603798112999362083447752479109309883379074838934690749310471074319759693492229427065060838134377811285419143775061524267327542035750123266390712163753930131221135779618662397278740198281974726028655683481197854871550888727179301572466911266436120755696823242576036736917738532758020838919580705817682037618918364973075787527052069856870534150299681941123576891470283186286669476863896419194903483617585682872662868006172849314614476863659127033763140274339160300174756807208569861031834175036795136899247729108943790646989545827736713905081624540241125753673293219223779170427155841737364332974665568724338019430358048456563582693368793089681284004330631660105958798071293961751682638545725473200770333247445737576950421546108461078166208574252966201197531352860171010654434200877031776675928184389742298887380337184213028497848965488687664892833225156661746568346330574506063248455713838303400663605199590107955179709672523235795841660391767291080327192168101858203941127163896788984297921870212499833337323805776378903007231823533396259483682116444115489657816370205892972068139449329647947350787552552628165995988631361574777695191172265314317557907880148158457220290302636064200875618716179436510384051799325112459540662871824039354482473672837218801791535791267369115705272121861968840441929173276761792607239342026820626984417445748618570491296697617449011385955237399757639191687031854591953467430881737383132855358310281631098702468223562823167884288088294972190777087659095305273352043090226220113454677210733527620650569383357493241292191613581404159790694245657613423151200920548888597835730897934667800368331770482364974190018646441852056321443628955397617818164411413374759882687997818250385009070595175699162381369213577801061825959626729177137040044767000920278490922416831827771827868344920799767618917725929539457943780382775525862516735772445711377779258770184261191673765622561996546637923959284584547879985227791321946366521068077976786541238848260389879219688846992132286298707501092771052285230565029212887431292360652574464786520947521508788488791475558192747170551677365398043490456138691794972186877064834670465789488900233963041898323644896454043237782901461022274658670759371172698402648629705270979948188736388966199142459704604223550063366773585445495906918527256740661140504771584830125951004986600778697563537054634131367617313910747342937601474506193324675606342270467219663860505198113195798100343712991248203631748634753484933372592693907143621498254686642368980698091791442254282524902902972961830431853075065106091345334057732060465412499601080565421039154762696924922423521873567659037396974664704715616050443389033304760604523634085215126529465862895756123172693742765257908981666668729935511072168208168961266365045045436200148552480814945343445484386721267194963535946758129455756160223464203322295024204695429759186402340462784142033782441181128602287090380326115407006182435481954395011671969760456812005593126274558549407567513758438081461591661234262423415774628009464933122109022603791647818203656084085044280512049256902627287537353859077881166665328600079678529181806256813439599161963871555123815490653173250402522319868444657742478749720863813549905415055284260745099017627246389909905543770802183388734308999568027900356751971098949306122467756435220730570157282403502280497068813096661260679165384729796392847717482736379609351170108258268711927537250579265446110006960193007164961069355666594754875910878912000511116540125053363395501500638188546252408745322169240482133950673628949058596766642789107550945293707855782047285004666992373772995647689223512928349842852651777208523651411850134082719781125465201138836061792889121395196924183389648753360152646355543438053730894597804841019819799711930295092999927240574730103186855438370006154344963137920943979342656595799189152556614842194135338541672173666638992186223151794293464001967417770887753763860023723208049953815318355098733231370092518281135759123774466345819093695067244811283775500288632322654337130316591687146089862703611838490733478406521973233967578888877401433370290006280267374639226273415017563804419137579629753540718324904365285242477740646835443795853120381122526136895033301492527430022402442296536033354753434766972194198004291920701456776173844638370261353108124516167473373617178634155518656866725839869067292216142025519029825698780344775064727431338969662936776743720232154212043969028364788396460779321489093772845420316585314046989365275721737938846226680322372636710156186398215011229887213238362987717736839908755227752628804221602144577906340563823645270809772299340929948178538110571921349236012587963679945094088354660332083086293317515915009018287335392540100280437238554656274009544464778890133664438942723471736187373918350027088335752866506276891429960208606910972319429628873369618176024428222713945475015131840506126165581248517749058251779899666243583656252353660210441451801128303323077586421145585899416265073362983879928425064307391945032714222206696292813214088746082652332817171783572881914072247747643412631120260584846664256920980672903707389106982826176397077811825626082983603099295975167816162648253161095414600501607272502980997775294914867737789287279178405095418263375952808990225918054186300438483073805751211249571054104398003010018550371713233020620647002378682094716624643196322229835100221008869335967893753056803155210714820169038021142793590952952868705834639432935953982104018533350685342094473085759905384594983507743551557216885267338492144411462370302503096426769906643488826440596007989224921444018644084321216094881989127522252057262770605912448920411334272955155475168364116320554748193169877467090259001221385409819630953387145368389237375000852034617875050733949620307131334471825559340221534557480908528382300839435357028479560752426490758614596699851215911712764478228519325824637883626313400283084592771905156446155493868260751615330450921276549192440278168040076356888265863785415512590306978415930351862672297784026488408207063279939873753064754362379206571324882697049688714240432791623265842627863908911995529675631466353814873561989527318409997086466763339308916938417714497593411160469715197549558064193683381015653392724612279268062539327770533966248798640036237725267840998661182056300953701294764109926593518888349088466286307576803814013308128567750092487468764089015819592409301963700681065875625221267094225697515451014159688230740481043494394770318021156398316504384026026046593294481987132379685819084307600040562255342294637336677333189441038071244716530474566266436288147194312675948394340979272803190468387855643109071477788589726314800216140274595589130016402785814267216961681683056386802208334710392242189196137008823740337115860691744113286211547807777246217414259754247080582650167118617766476051476379308180556049974701625425057180113000011437526167669821916213159293176610285682358601534372324294192238518239756270848530069411246879752242342092110061662294177735239071572140697645189157232317171162031388725935681796422672136819999818296859338011541237067235864729898830370379088812589024415021035668352031513557225986872557626082181537886284126500384367987892608659805165949766990634576425380036266274898388442498659396705024626846668580230195477863147278869599004690399674284472865981633835853133394473077836553503509582555069329637866477128574029760433767571383138326640236084145428463490215131089531290564978303225957428894678225206744407524238380595942422083135867098654569345764198371917074869598959587184312875755298600554575034934089126175477173672929266695089284489865357068326366869494117514869521250034568465336608491973381540598552007019494682027284463256645719649823092822084506448178467673576355027770398203360739620202131229569605865782761634984701831556988689920687471401648920896348530398099140776185810950148075696870703069870440173442849684086710439975382956663276372330469017038402571540160305911007630971267860070156980988137112651033570983961007472918663152172545256729562595565056663390886269964660776780816051058966580985728763669837593825273138348251300040567063828021290276888429436329520400314306642498640955632772388724658546076791576824155941931634866808261431760030339327166175939516702474951181289477713302673422958861303805311908306992593453376402836876507402486821015356184133114717618148462564836163214537416662446959131178619391314045563221360582601767736168063623702838388711916382723623050650216853868322318924146960007428337971847999003941438807226551879711531583838109730579991024032235047058526647754465552182525856897994627600554391250419669069855513477741160910735408570394691388189254623834313321296979669075361131932326905278647141386019084247216541949304431924242533047902702589312638283750929375260471675265195521600248750795721085051926165556370249606141823961166487721968358038362554864236821377417033179998915837271397089090135128404272114510984394624616113113707611034281155098249725743851353576201325347660534917498644241779175758582874617188954408496261770776093935721911330205260302076966408278135357743138649963289036483679858845425435420564085209313591215041616047766380217669604460283263356543684736499150964188095658667848882251434934052704400372799077417437890357665900796647610379902785041523581947156874711426678202016017290123719972474165791942023608886473239808813581865529948250591271478910909192638897969842113674264345251451756815363222308967889263905526131335447815493050627370580524644498695257839813864402491371244986087853781082228937964959996232134225249312924937237867770826467348375063382084245580130767460006829602965300770630408665366254671692864915370084812947002477552063631684262795947666154697984271085082369051722508399773508943741711908539807541677374333664983918132811827444827555623898249605507437437039377236174854162175895366215550371578105122280288453555662913977906907668246030239987196590890388961508752723169299946781367980789576818733165718065615150669911360281307612875248155310852940805553118814662542421906778813243460555499179165637705859781839245844841161202814262006193242566965008674004316469356838991402170478025439028532499492468658510988139004014051785971462475749110667623693174395725489210535211237800482883032082480877243225340933097808109873854803954635356528171546345182811249147221468429845174938608835219528121834390761596786762046328550770149623851487003233702096799849221649511639916086106848090468954303993736561173172863104709298812306854619623201860230159802991326947350548552467135339430864299930613273142758994891761794054831140493600298480558894066252617748377299261332125035590307166652965536028240837541283578100808368815922982339252109332102243391397355229946317047950841116869224446625201229912986096874162725763383787340524936062762935222131866612079319914147112686647701782558169128330589574754637571251426425992154993229579540339881721472922004453090453881344182611080373122775748279801068005152946603599671950507284096881420762723126296365947002263356966404821561625054172005137187217625314189731091125681603064853005382759929963809566028717543162937977083484728453844650149130480601796666820483552555633872369715095021135948648336464325585815910525637643084785862938748391896977468333821487848660698011893874867053767224707357341649197944490055002324014548265138004091391532569400962550731646091164012779921276084799596321230387592985821899018808402147675578353676679388220193175303312318633991839625188799202555498001816129514639246380426204755229704670532897150782551432968509023170437792859501654167114922169267497490773744843020094944918197184308669294532215625804447533556372465337046275455825999853970677431658617927277479784486260965766244835040098382082336074645662392944306364109051974959132897890851172764964305483944527989245987157145524080760768474917288810169928689895787880378345094377070999504215964206887096331170407220839281795012357656502591789412495947742450094999319540153763938350027009953575868868260568562674101633069511683355606393790354267090910728873156643278880673200542667334663056360606008880972859164688487858579700838545887020665245909080574023397749745866025781084343570797784642348810323152960322732039039279234605876957766862357494915532240082119916835811009107939929329106294383131550610590644513841427811743431533853273850704075797775030094083045374827557194480225528479035796594480253169086506591104838222151585493685912000514154682712352448824566254768584421601212237381647094281207026172523024370522267525546047192045056065123431803078003797675037497070245934438637140540732023385693789286901373350601308093848146000242605100690834585814990008137995957279172752881962893286916823185845739887752552187775482549236203800361135844857052480931504726224000216486793220131504221380259256954687968756560360754090885239411484457886967446737396571350501446627629744226874658380793777540868949195004687173835974176642145076747055321697697675909038121183287063376468185677273424517446894291405651592477307877447119919769868782124126752587037962249267756307249414497280694582738316582358749487639595168467460447084714610345554587196426713998641989286086748987441564508166837047742205511216608060259207161060071844613978486668721402220728540160892832682919567803478709883737315904818775952371762904934363315008109284127397232069839587187775360421757730189201067276558295905126288921490739191109527281895952619031187013677068040838603267335292883968731777294643394848247805970256264148929186272545189954551513111148888111256133809745290971211366408985793666200604627177252475824764902133091028397764957454405915821059485473695089849353148042898434655882099023631637387795138035983199720988387360265156812439816460245457033068890425481944750018516601387691171629700094585354778610806240543286282826693343990398605392343857954500044209010807504237589366663173545887665960891322504285866240829793915008556940846670945486565998069920096203419542211795520876191583046884124699181974116101493393156596541175708971231195035222346910814741467951056747544410249865974479390387764062759837906092442774900611227186879610301929574487395703084894181801166837369782665455009937419458858431483286098292240314398861576409437770437159917589873340118505136811550572253474067798649239916838700022790629894407072592744476536181980056101409656949345354060159478755171935126845818565322810173324700771045193985188183335857203695277591740150655317529498092528148985473028651010097621068460569066994566856193764028766009741114313966234737297748739833367362620776798176656147133825304769234331957308252342410787692874014480663417428877313780290417857009596962857934828193849933673418879999423981345453532219593610328400296758675845068087346384453396782380150012786881276696988580204008496761352003231542785039832725451093567986866106734142036491599883692975396258468681735764084303080566293663330958577974011359200878819376578348540719860701981368295470910767418006783593543554352393396087983622888110798028828201919638242059115083420789853949280439186340868036633426115421730232115264830751367306069846940353089756190344210010682302640615791667528543828630850642767850775705191872493137319147468440466829669674652656096468994605790690969174678776264867663497630405230671908757180826016462423992455712774152507521776479703353561107459508593221338879865727221408356587425840356936343639111333931578774432036794640190278971740739036002813521068410209294675481393543530752319546593387822141159523098792022749711389842960857952592889574851498248854543088861082118884539068825085487234635470271720046295389272666084168523400992331978373562073222905487027391329355621071482525666919506952068391537943117873560742798684409092121882174653251433786481839117606146470592400380953634052205061250276344258315848059710452478249479769957819486055337274959025642826299151417889251259228898201795999393935789117504371631952179999818150198374089317823539907302781547557663862917968188035018591444513205129979415781307640378776672904197776234349829167955197270808489283683703014213083459803229830890104408480664764667836617862495027341089276223026182629628125757631691297291344752564086648899381343392185350199373777195155727613334059861127541537987408158721041500428334358772977905242855781549599867936380923693721815872746027995480741377667195701440371898619529358835965601317038362758216356903829062852911352281629641705762383396072899885379612898446670189665639195091189478060227975159600080918553327269208605852302188555461217257120464500470311831614388873276425467142612644819660254121513582314813456964086559270449150241589167188811946113383566870785644011890077240603353510164199905095309692394223521118140314947104681783806262292503266755243352075731326735352609100945311941560964918964905777585063132730081787450387037646160806207418005598981963158281060745210607719587740069560908276396413636880903044654912219137072722442441965288218978800881778457307272480363661182085365139868190350035871561833680116924675987344316807591230686995385498365462941937222602921149164800306214392170822696310768871728504320887043306275918415816865857678465981474855097830201270534718695362540981498524292521234953179186422156982398186859646202007562039475241891979243797671669830292101023086245130554955999498103011580389492146936593004607235005955459562221153032972643263751904285776852924860103426097676077034074233591758447832886386568489488941383563683777508845564854624858575981310907912889264282289290761049545270321013159386731259815303070236811800424157526293521421666736869904060618062922322847667123586280508466539262547496120779324722372007181261224871789493179793428463984973296167175028143228930652228091708577454009127190117954220994173207767308970212684774704752299317744595301833348464237164126099468442034365752669822801715241479371510322728408371085327670897064336734415726090690158890676653398311381177488595066224832739390118867161186536531969836199282694547347865174844243076279951503737232071338691520515864256050901141695138425838133152374219363873897034911474478933473798624903253658131733041312898158706179767577674765044608289395559296225599776834699282677104872017244334192893449498401335434852456397874904490531321073823545946443267185856727115451186384712494178852121460258024546032496837566437919084621825982482226082891330179334492900875304467019184320383846384695859799898063261061462562775645258003751301567732531395121035528254983137464516071370539421239854758326641257924520610765355588692271607221262359249386799988409143581105652311536062482943978821050847440603935067730986829242685490630874998411464301632331271689013882318311958942620180992896743111635933524710078431459469626807769810955225219578369651688221683416137755645513168510589934248340550511872989208898578243994374153440341795682517238010802398680670636184336089056525524514593028465557336667101334044914451100048849953416629847634086713958512353867299940276160867731221925611622278698421650156667678547420724701742428890009021051003463978665951739321174656736706208126143988774810848031696203227132948390108641224003605736613198685562833364778228616546140869932993186605599824544530707234203803435524842202460095659419755972477812043839699307592517285844104727542134064610687443609627754115611949466959889311411061837160752717949086127582142260882644376640996970007999877796331338402089108496819680101305482296110476217606909969648532180253738247832621016338776845274963419209221912606320298087381401673319129282615971029129233702939186149560343835067100270381205698474292369798483735463201507724226550211358851623813451635676760738995640127653412905085198221745515535445425802338980029246707523781298107578172857157046220581206318551155389327778426102111222120624685294738999393422562576121091820677772481784765321564840032401704509351510523421099501535788463990972459064153958563900646804036078734753924493673915019642107913650632197465874814345128189981585845921501303660675519169081990180155062422831311502042940623069771241813536831529620309413801934534113777123354514412562152968214250625346496938487940936697441046386979239551161996853795304784897792631705096191044181599827221209406922052487464825236814440833946105125335418254942533286154717188884813667355087082973600043204451528993955554080514125691495938604061138192651744931731304841979611134299040626960843801650425210742981659472415216998397861012164039257199330980644773674458019211418058535763742396028741187811136904642149424881574537685554931153463403481213163038318421544811560352863978475442592651980172174364175666876353790312065327987883451359373619545871528687009383516923384281946504640505125210883224792381241505693037197620010250121719826857694562169526588343073607917077790806708012799442790106764382718310859907533784593073596155938714278814044123885462157308158163825605048610302638178683892108365163470480898619188671037606725115812884717725940370318248371911964009500955594143233643305708165480478300195346411553650334508732803332307053674170000574082745037994022450770591876223864624399382433060858388381494266502588855657112449821640917851536842984340786227031767338899658781405219636076836336465928909132874349572415969230466625380348430186557151684950912635739465410008457132414883675810348547523617665590324760295416669362135870858125555027429162278717225911758505563274273338761086439743944200736131172936481441905091343705091028576968597839043341601196943020383267272961236756394711167724622366113518048194230528473317862621446199382832444699239792962225570311604797300705867285135199748758859595082882382664309178675747618320034865226483445086010535008961707919328797340230699784996941640766047597220635927388676771831740824118138864796118341210949654885176241326270674388029741097235884836855328907096058831569665639971079622539616355472526298329358562853059254366298863953387177380618812022497344487786753277329480492563794415448746017779643966524893955169472987592886563803230271975275316827769474374961554550810703259911508830994506561479311901118686012389655816585247865660833829032422266402239752449436448882378539971636883119811609953887446499804645067114320031884085289361814203869620207237778860578259408816332037805029859579372672297888827838216384658960909242444379092033520307556210382435653187892862004335394888433217004275597703983108245729744081090693592771474802616898228107923065384259855631488417041702176069226698685366917960789009870895055613836377217521951098526673728677938512725690574139983848363040269134869116984296195181681510070426769538245894338243611177947041907993869989626828153174340137055753141924928489573624820459897889706189515703278203233494104783698764077223969882825887479198935951937657569073212622513931910625177993253283442372678467305585052730259010203896522591194585925507041960288936762950637282605766061036189512424905892873998192264334754881188454130415488637901148611786500505928538832337239283611529687522497405225231851126284345199043947268482980875648031744967541174213517767502957696046264864961761385121616462007303119219525695648081099941888411687964252345011003857798590175043198044503902809862707303882799329538677656276748447504928803768783898077606407169535440359096579900267056300550866187024700509975476026803724797209106126673582128838081518953222824518831407740452682301904763372846193093868394455978780467396957249430062435288136712231902134439260284986924244569163821413411232956299356365567933124771128476885793371519404390877540456090441730395403523892823102811320299131033582464540638946675372413926018515909035435396532809709638022193406484986929611306467050540026726300949943725312605143025330992237933995239166078373152153214662873171969658024409549487156493372403232288686673944996293706095438992450304012680608571214344621289029571749774290215269300715822291131972242809550184113408229709374214637381267153388029704534076201174893337134066931948123745964524717799321485958761620595190518909418264578393811400222748500590843955599151744771965965553971792288352657011123655479302135766948100553763331782971308538154969093142508324778459837601920131462211831248857327444180890315587693046579286760368458638711675177158831469916980444238577186131476144804985072963105531276671964727577607918055410766445464306357022861507659560515960397945155404094029791320512018169811354169217929871335606630552290009502659341430451921075501929405964385923771807082345087845321575862771417000829977821449463402122137680974979184888768275746826265360968774038264851209772149812144520595357979402644843439917035844646674068395154257191354916470223527627938637628974979898367246088441458353631123978166924629443527788966414100319887863940713599645034837828071814414523907131802299462817155510298449301598470548629501957919993778128637439281505156242496059357293386163195311678241259878146756169812114477191079755581465105100289085274904155195364967059385353548839306911514581444709036108082757231694383473481321679623641243017019898135292663974737289909124327733852089713028651243892506951639700573334106070050919065078147393456834212611075379781453824708484734209884598725042120310821204441764583007065332030994622935714997972447408113817336821747036888887777051234016474295126991899655959422304001651118205779651390599131981379112565227690676098170867946651838593747018707117352779855579227191652840385856193826222169448156151124994387028763480191092636965353651949776318753570939080028821726444756037893461990431942422450190036796092446966789139668262047921703667207846637180235439966750262788817122916578458528329445545076677933274608637996851688173631305431934666495840433924201379350127366019726433564087223414321675992170193732886755972284632357248922115015450611530450809381976669572455679396366098937113671532188579329841456436518474730827639479860766546398397658901101864478505332595862064704772458357693554917147033812623372776246312578475607381863541888556354199551178031794935380419192563031512114530629425782733160606255851924297555881753685078484507306863907886124933230608284287721728931287935040698277511023648339292448835932060770681703031922146871565128218341294722146324972145595191315152149947972370749023146366285581271193834846583867738123965922436370322339817049093473938403678863798391098722038614348413000934290171788822060152340182150537773576532838238039637048940528758224895822003979962684982871416408229502896766551845914731347959292454548199606633181623320982520436697029128381324216500254343502871072390863726811752721837449398167648589325203879496886369469746320281482122743738488856445547660228467578770138941146107585302799361285090416800637685133399387967401827240989530312186057954432249007681782520129590928935145777599459943134119810421139201204235067131875965526050068199313335736592971889101885200599436026092215469483011118468052600580862406294299526606552768371930492165584921799672076772899973072713541387507871734244562441372224595355144284785223908283858273819145937196721568389824593295555981462001276435024841521112001498208452420291358166103693182920819475431961237121144272632508840693386550931009251936226872322180137500714730720291525356638476398833208509547801040139908694867866820996115124625070868349260468009475582297182647785534673816600969954953074408564070814362941580637060701724326513299620662485890316991453133109407433507160016786213385186179910059915719016030492190283377759346845182582927501428927742686181515759660243003718387952175420878442390203824730893688816975051198107081453967457066566860859890199354703963715779861499968143071185667054045364128942244706562761770083405470805195340450287059758567909047891009911329726060395577333080535906495433848892578264715166313830262189480881137158716467980097036163178626287603419946850544242377724681842150136558785982240128680110651156054816260738508637293067683675183655436509274416527107739000205102491392342172407606159109974689638223251872928532841428580553516565515750797339571884069229284590148952660649993338891517250104833215686602464670520859687040631066887441892653979680367401146555958832292654402015700190519667682943961016763601089730034965356055575715187739876466003853561339679359196665044946512425230820033483503294901711320315377496976352803678150292633504628700194660136639728828751149559842877494854678510123541501167801148312014163800942727175366962754269583379578068033663488304413399289997264362558001461232153421065831546009127556392087387248555001344196039057507180742125203342863136038898176619723777411453260725795822150066507166809954226510201687603019026228854505078355695397086096451538319680463889996190101352234524309700137518120628801565593644622385363116622859081661922168351658978261289143330359672508201850248345279442748931913924582393010397388543771777174102904889662565563191494116384375364238345278121658079207101546005705561591015458888503905724080678764077645364641091276539312996560007076532605020683534513209599358409907600212205249319856993169914265589223624894848372558694874331312859322296977514006813654642746967251300305447540069477633776674798230937831299976397840805828369619863387270469257294301102518220015530506842612509043697538711763011165632425535905134362774847262037634938308748532401751318149516175970466198714408920044519046014449688377611952688049354102518432483747042246502302127741731688449555877250776943243615646200690431384967864214021400762226309090961660437478573256113178243046838661083726705391214586356522774105573522397912003111092124583394778528684545996116808726552706975408732834682861654891558756356525891669207064087487526821724131336622509598723142863398688551351504782147292899881582588740585935721006961568891863903917426332623869538413239371253833541072379556506831292993499837913825452129484185200264760525394195676101516678543441990450980942107122667691405816104854707118411257762184924701561059145664590611694942336537503234239656510598640071138576751677816709958596258531723457997993205103547959723146491926718922164711709419877701925904662311960111057205225093505701775399301346566512828906104171901485058864649833647568938677930260561202501147447267780826834417636424159192927977357356358775229885018471308321388589749270191008276703316535254573759177459625485662153790463223638874874558814734647771822320659994220686457711118917145505128310785581313826228501037513137680041241199688670187769022871257972265985100373912947564463249994419570917094602641624032480593164150673812955947516910484156062118281658070862463085948729126244648115227534116049082202883584817679853138709958146575215754433639063928153503567928038655304970165633468813709047260479916194913172005843933299531128822606843249233997516070574920917197879011357982193048634166604925238553468958677606833457348816805682956270577957137590229557204118698930482461430753966915781240675243136805293479223087802659279347155096388713008289583887521409542288095255763229881873647494097432898903711377723880459592583554414867382712642435404175908616633754871976984487728341263931238611861476330677318750687866381165369162285565313115363895587989439620579080504900258780239939385670396437465762994251629129746146521865149593761414570320026482339591980356639087119561734440403198570705513322202431389506623595750305549443831347901322825690044750111878951553381478371864670480023108889373344973714821009193138024970425954654295917779693526616847661974852157108312377004405563610331624352043715383662163607873045363380589477206982952803444655352023997348091632602342408785328610693419452793653194806187036236521922785968212531055159527993832295282969979233980702876381061479192350307887445276356661664561738511728143041333934273850245648003487491013478047373374419833151381183132540450267754088034273685046305537252923206962728840644689691260106159314369361902231476689041120175360637748250527568627891711327925341446796442989836763970826556603050870538653731982577015207149279113794301042179414072529852232331714394663260155325504410191215077436620043901929140391562627896808369165143178570278940449320714213787973638402943041153535254111864347193095786673924015063114394764746169221037257890802079791467213557321327851603166308639818604153495565958954781505460169663308449915940458358756654527382114864859606950446526534175017912410419687993202483683728928166167137039725507785404563529273282549192093491479687297629870967320048829839350008214794645449849858269016335477806751780937293171606890582282061758624633528271626273440850828331258021168434099272974558277015570489801300877832182591234125641624464866559493490866072145022492948823300692491210144336561570996869762579340402762244038928105596054800096998727985596061765033996575984420535934137543789697941392898452070707527146501163408089831363446759606372038217838124439039604605329296179388088383912627972376383953390856376296958826479087336467307143187042372260332794356512394538826490180436706608685008349690398245690533945953219277219388055402079460017120933627919431431402165984876451272438464147261261173974480716326437463752506161375057843570589398553558272127908029481786244905493281721085184580398261522363247773866267479326512133596253042085074315748596778877103620166985236969891634301223407240094707410151690954759266424688271295187837002783030445724521269993364992724246220843458290580115895670207966208561936337987505537233031270956611432725211847990989079069830233887115655285012114078072006225545351643885199858011421231327372923597137517499254024480745757539255327026849169608079902184461579440651316806238265079033537825529792908500882611548672649039617463528110462085449853922692351657389959653087270727564878619137649610775664716931978496157698460756497536415509141953054014564655045451073521609462046007821736015867507514280878209848519862326941026791213292281566325727625374856296347152262566021396717004206569942538654605394816955977843353381964113063039206929589448194663746622702557803333432226112992420060455962826939998199269244287109237345415157222002842389592357950569015339454462914652585700798409672033165637610756783740141656409726288539753697993477711880058252136602464185648150048554096356176140682065650352863067560347225810195065580365426572892794564238467034509247840431322814299459619227849336474751349296605036616193897207443930312244411691890902996817919045301411637336990274135056009166077053398713646978657886614133778893405728770055881421223685043999601560807999077203814701919350184851697415630501345062949812816755158301512881125153938764279858462610037185935846954935727544111404235890158955423625485890213828778248467972168316142952446717156673587496974720801743762050187690069510589223083160726559345584204385870887286087924959955422707160352976048153354595015951654645795365813908540357384732133829737874585691517651983575365300631983590824792733127428666532851592697185804779335148367287661749561980446179134673611890401961069732746938546012624459760385826508526960379509780828238035069528658544245682238840564430214343896878963008261661524273172406993902194286387232513385678222347148585675301141582923905913771639842023153627978406170132680053753999037466113823396927381787434242925223186822147982458024001718966317364050865149756984670537946942291892294684484695500934608939111100818504604809597799345022116897226516835003991591403999857778638459440100281509121458368908003918861264351769742210887590668421616425487348476931286945012626281129793240901914253326058110429930209177613558734941195866478600489545737208965881941855923855821088734892683395938286948085037264410934643198560529301381169689310357681353845472079953955013180510027031512991419186876510704377666763120295554036166025848362708221600531413289711572077969883656956592961835481768900052520670882247484747341146197385511507354135540568914476970677714265676305787565864977557730568045673982598131493328218213107020137998790617184515059110110765511666908095510443134705487591212781779901369956809672629760218220150687615800203867962178607267306602930241838627433132941556056250774040402870536186677375751652871330545187604002349884929963783048542790396685381554601392316817521722619873414045355342535677047406728187056844856925785145964288310429452316187897032876576402536822473594529966162609032542168115272871479952923912702184465935387656940022156038312489839364576350147601595650673000158132762206219434976528395070692910273026546704203860623507514444647508124192215046246452482639631373476078074031353994653870543790553292372589605489890498228803591759831852201964661936193467531969508758543576470607506657335854972782643038360651254304392072621556973895141514120392429290623756604063355154641127560791171868623765009420707239658016121022625993975240024943360189335035929054133833444774492474816036741362598111240635417491584076649020983096958952257364058186881950500838665060725222929006695543450942851168119676854850611066490593038473925463495432556283889433819468725554863150429332760188751487901895436078747737126535609776052435368842104541083422824138012175777269528830651498561943872969311882895208548535012342153498387578971971828126766964685496573088294706157820767249285994244328723041116917062131691950685239644785319135497514445899251118933554381066289503560987195579219420283793236459386492852768610932762684039831962584721057132172631311064171578878597697742924139757865242855449503128790098092048884445109409310487510323935608760802865214330911436489808540830142275845339271505595640990407526658500124409728069742407637290260542817840194454004016389734115024797484252338602304160380562514203999971173762311628403591133155606771080223253533609788352513878570372646711655699287523560285379734762827044307158166204610399548974127878396518630345862037353654268226742828442059296659822841069959791648781218152364740024333327693083873228220070545394024005727738262668531035227619562382452041087822514400789015368292626694125777955144093156582607483188343902188959158060262560372260056197588369282160426911732428376840502029768701920531009218686292756415634384830602775327536072590030650488326620002049166884854885725124183941281200818668028677305949284405980722851875352883365427016064982959931351530820269611882237264398264322633934012286736140149233615970898520168901693445291284873287497211721638960596503598088063057257553214364727468759482214993235384353812672583721904980366030551285554065039356547481140773957494764662447401373632110735195591019230184575860627814204106349897658987549294769837598246728537410151275261190408077067551389799152875608271676290325309655762267974982838067922899673283172310567709657047922264296019106019444898256630209261345036464713777514683560316786437921735280472925969891892975272012783248678175015904676587174716513924860743106248939988046127704494388053200710249073652249692690724502355799921487447131317695460931018798366598073403484316177709268769454786122387032644053466542084865247569606887495284500434857926952632019604994650213923668065280284363481870689955846286897894797898061062103910048397927230179336154271153297884595459772227230818705179633517211365030628366335088839459601560980636535548677023025854068548436860920663559519142582342309005350507632537580595218088414003304814994329182162709603803685045161376498896868068013946347764828814858528257423980699687637332473241158961593871213856185717319456607010383796659606687943136473105874575545957800390947800718515274215246138501862049763969264659887238498154558730985686044948040613893005559829967363968011196739137784334904983894757348186405944563942940619638350182720817333753765700364984122632506664454688107285239907576267450608369671547218812716783445496050453071800639162428262231490393173172202479553881767086252666151809200942244597152922197994075526269155640992152266550155174114470631330886128792158778193438953236332509636884480885410015783027177014751227970424186744474099877709877324320039569006907416632857003494456269438806878343176373632760979732759354052216973914989396409472209318228305155471202597591622409022659887101066662114562034620069244755293214072307124405163740061930248467335782637503415559600682081612027167907504981776228205172106902960720997003628851571336559006763465020397738974944879348671572068750818686780914130403690620871776055413175015062891661995857742794391602990956086867746078317703583833733482172342159618544236814648966795500215086908542335440004139327182387488788000286051418287270338875939640511262306775741258854643213698709907198530655381549781892477862278138660114438672832715799339476701275033005766630405725768708117888528921319167492456243197325626354718072933521234460706032902360281160738663274351521736700302992515766842849521152932017983587876991443094247225087011309788184928739249529173486512776056391126962495538761561012881520951455254559300424333242226957794287947582290045930101531822946021905104007408162632704381255623729538757428219526852336280257414098738934968842539269577290122005993172430975804364052573442103397471566540389625013499602750948975686343082194628547580047139959730897546192668666127228340136119199645370098323358556151448905601212646275631259348357192369743919623034301098804209812376123929183304934084125063296531181947420858561422544239674647181210266030652494770300696326868696205139360329505701451303762515118383421913691133440310498657908254723314088188126061226753363652953773167748607330459184046730796970259711836486491518413574451328905523821103709339465056102873080159290920025050022839369719241099501365556014062046761504586953200362848413585544005854337316967385025434669864510622283908438398514969079407823872782355693412419829791488050536062527586512129184060289470903081523460990220866602955788612425238882248170236900923891124870273994940093691646960906054273210333965325357697544140470370827664390743948558063710947156344080270955704114787828027922492572438891276953825279433136058459525156772284240865198515590575612685965721311696320442760204503857638124087459353001573262552325680056636696285776917168175908786236548922892378557145315120878612891668530186554736551111952701845788524465378246835468130274936848198064854552410802488839186927736945025726891311497624538954550628195184468952726415002606021830242302891936975638138428498955797712009453090755778455607175922988915327362999964087546927882199448408912492452960449504601372689754607060421165640661312734257866457880742559279719032772907273769764308658734616031942981863500892991450108344236311103707938615087915381095707123233984662887146193958939336882100679218916333675159327269414544645502685856238869219679888710657854009370060406317279919633530373159918254795149361136804407062994793133035331493679865037291525905457625033190896202774991579370364342667640070279598765508358534446126918946157036088810617180722670296146751089025043686455569626822272542018587319325446668310474283652908574811732215517207576335758277047875456305865535044017141597336585363310772720499071166645124486222455615231616859930609659799954026477290003053773283932563913442111277780431995122975953132520293457025338208803114233667031503209099688603603906375130559069427613975499592188482038685897054894099301919448566718405702042458552326388388702771073443824117678838891788404858665671262337705218555325134600372883555039769016641550980766672514841611075623232460125791996298234227671510836243658209771143934298156595529573423225625640033195122062500658872699871490400912682996857933609374164285106213914290426038647236472254844586381152380540503004788041716167117911849741794627994801346487010059850046171954377478332888385944064378637351291129081058640317018107486799246444653943690717544432827373993801966394637125434168548139395001114299607727011981063615008582902533469300160787990967879629367842632716834942228177007082114783681024976786472765793420519089716635778082303992037594563510003404547948967918076093577624119587599711274085450387336568239209281741349363870462771698675465611648694795021382904753534320328979137745818015128475572103517720064651293150486033612690929063522958838057599144437327216110957212663627907521005337162884637223474854738341046495276710146374935516366769811282850366523051435768139654667652506155470425335802295570041213108822629009672431588984743163281607646156777687173342660034965641448213316764051489239062089381071553461586632798396072075330653955349375007391935104479751812038580404477906262564551281875434841620078996255276182206642228377382936366441721974068814780350851056132660650582084163208293076408303926858242117427433770869110825561872077854380145001239983654603263817831691447848403940772584000147850386574873779146308851810169020040613202712067722074942054208674344775136780192136905318495542609143503282262274474509543187108593971957237580956740409302059261593926542435233813768737347735523157248315048998779002124392547523723616473502907218176173471059219000556776202203824281961728049118695274222786416589745879742273380973471359353315204104366258574275070246781297179085117117081984185101873958637634056674726307893069550765469034662270601066878825960339945463082728769475547779404826345976039816512832699966312624029836326333204443994207080733407327021741071202369364024670721380910688324598172818772039827070623768752525103591772162814384351633274069538660590095714451252983225476143429753937573063927843664792154350385360396351928636461866760526271875849895549433522012659335740060732617161770462033475279143068762932529865696730758898685591199869538181195530021714745739065531765437270582493243585392291282120901168886324881340103312851921843396654953151233662141826851650942702099573605776163236976639264962397043688022491623891765786008821331291584038338255815380915562445854102068401322180969709132227988009289492095326411420023990802766204767135524245270111150023535863992394995960030163004280370681867597284563941142165242477150289235110713357311423838931574484398539806979485460791195158850026234010420278810172326664122858062386463839277085936156178334749680637860099065230378466988904535684774789073549687425354487474741566560318620669814750090654747752299143717277162033642847717289114463794006050010589870084431102988863992148217493045650632415474734010031474465669867870944821924565659579300240471010019126236234227850568278602641005845152260311458455486244278026687429644434243112162724976215367308108410311709924916739946202940492604416218576025027834614199464734410747897953698419439037341416481386247418321266497983809562147648945928542979213987749702037152282476004676921879442428652118631008479636004769954724939808126720687983107574339925384125899592713842582269773394417171329819317674087718938710695995063077894661404557863888631663854122614067991942787742717837539224308553778337352522094570811582047633878389335173234934436331571291369394745783810813231013836087192338560625567472944464802002727467063723862791404228441070430769697478400861848628952748649625707933565389182954995953349972273569604449408266830269448127312778027781091306983392561681648035760385906482313637497992558272707804943266952274086901527542576640516038120995821627282108612636526387925519410801511793657104243682862949881100787897737652214696694548892573436831622571428046800285123489077839371115377953668092417963820677016336650922793201634977244254394206034947762592041233357998543016817667311178372373350946202094105969997999797228829837057103032566366289983148159749550284773353892358458977551479292126007016628283711446985163726919913000035512805507412881338450408571384662960529801327955394652204640083065576044545231272625675251538386002892755457877088558453982137397243811060746816075931131934721090532971996943645619725389905518233030967139050537566899295355432216250423270526274584795259802449576380954966555479316345223674352754642518405619099584449589336679368658327224189655534247228528741402980057192580974076491093397096317626417728035613525917015355888925345922463724085732968272376629563225273346870654186498032542927687178636453480836866513149576298047232915237337987063191527012378629230747727594720688978521328170583935859809598100939736643347293375625058285777437898688222971365801023846218681114839669014884457514103103214065695668142494826109615916581883239178553730231565645182560936381784649820551012470583552757020591892306122967014480893226952504830276952104914472446511017999337661603003758070913622520930756094579950509196797403563834974408121278180449516217179489941442579334735246008875426291780907637592792382236627382926843612847396405035661568173507918605329488481517212109414155747628119204759082289310215496632104153858472011928879719852009978100355547510712580907019265486954821710327391372065088457555695178858101294458569261182368184710236656812166428957103052253046597828879364379774836319064681932290614020219524119828683702691826573277464661433170621203695674013138151360820596142525107443057177288999254298641494289507818649453165847294005719843620549239838613532083903422955661609643442335858022195428588032194312422027036848194647827148585426657489165067642362834843472289052797904131402753320845994751243077157372292742348961165462480337543051507050781994561600923095107738360522610794316466082904007071167981037630096320623471734582992676276331825034883338124478954489086583816925602260468681535076637264617087963602434916036980899972830058372766459442358684978345054433154158977685090031328651626083552653598950552169632031598922374915111788387453118581294429815899228303696914318956641993654877861481059745931374553292819369296305668456297968544647126152080525307805724078098338975598772173267235903075486674402929303097937436719028029618106912289730596910575528955236313783463292840792507985543806448433477910842759441116180539388468030304136745842452751763951644805265501047907306205026137229446959495427488864854560732843369501854232859886891043154780159166169747093084595832864378061341549822120634925589111170658621641874368168883188141021324997399612216527359668641843687034136806046344462617266159839402217399154409587523307777306472833597739680456557238006306225138974302828259522360004578099757111352184687294257248891096389582836476170365799213031871268729898409004320648959038011555275617803210807773574751321658815534876320257993937807946842703156984704414426929456676211117530194476046578683323376619692908079808589480757115036354937776098127523355316222667952363856445263926594053202978649595665468481063938277431477046862430811175424654696538586150260327244951587156422888867369287044575333520547780279331160917277937936067464068883593626874122922212846957701274799320995122275411667755028241709785927252179920222401659327756235512748511794120688663867164064380894546144717648085150053717774771128602687048963112044786094709253404130399111650053153794818590761200665441442698674930082602866649792539308490546731143891482176868955172523638430619096454065397832852506546352134856933448180089373882326953318728556118233930329612164276706282200797814297360613265413498983474040463286823722230375166697622151489064734317329424259399200336576310683539682691402219257270461924898358928506530349221891065919148431938445510031611569103113006833605220931742048319317557694369108347094883965228907192078395681337851688381197684772138420998733355121928022328290363161606538799737648208254749846164298501501033869035915841319880935339008520279745439632943848628210199658189905715022229359794135300728035449442241098260109996852866169646078585187130500540425395457654356547608527257189461041984516531204923620384666598328861164627746283621838352304258718813459897372144832094105028767072845835153201656682105190289402694508519769579116546161523996239709332842536413786339019294038944653610975140100289505767500142945818321022547413470723067393557345480777996072843558560859052720822811924316468875353698367818952368071832920565416406291727887954833739464230262697108962108005561706193155556460387099491807520765119140545680945533818731858947236242943489595212784046988055457514289328472497736814535287621087132449205355588569054002449558804075370443645244357413686312883360897183293770351095028881611512829213663968450712190175405264561751204022490768294785696240102911004613739004241301745489571213659539569238835902249639155263450134779124764782476826343206362858521529847680862474706388156084691149719303122078472369665605686618834390026843451499911229454791897581616328012801001793144025668101214234687091545947029650302075656856023800455068941503067971419939513893944111877782976560377280998035349991392176707285320558314883103351391910994451330988277149933450200063352551451205518806608165678011845801548082868279171628062146594400187712013000634343665935562564666124523723363784770621620235035648301089760930416217550362471778262032924291428290371794029165858271047458175790477822116030975379597063877672350534898094798579582069015630307754077345966997310038811127187556926081976456860015378053265620014114169395271921424483484142548907605033991862364099988875259726988033472507560091205107569246707194772652643169650725562072982761025584179105410503958678911149518955674848224172266440056841365107719378444100937903615913232008686750183793289847507217277302296281027338048174433188135896732841992201234931509378714335361261953997751803019027534997604826932898964619123785903340908111602146906725954384240377162343499326580819907954755471413236166538641164047605503913444124226772707870053718846514590545567399391499564097075024815530954808838483022153523339545785157341995745950665050389202877102195094010953550220511497134242703147942992338000102655834355945293603102623567746563166791914528453280023815456946700187403936753656757585843447971083979317443677587744352035452723430029199749524007522658136654936169083802146592603554074797937118535201998926221030901422898265918995228541840762222800757880382058106760076160660657890279033728126429992079097311803067322269619215275298678998880457667112786900812617654422793821013014053991848144275481392783237538659735350189599791207945021466195264074106986655174560607278876545027400368233386643913888688772284349884314244088381560287749359121040835389017160857484936802646891491263156987841781480356749713569954442017000705094341805786365505252186262802202644382665685794567095946257899152237424620678707102195591876274609910066136973171415723985535764799563359786585611995733522242661007833286950959171257979940425464677504237054269598837850898161187175916537346691076773496300482066892734291090760091823776175357047162061689655615807544295184189880168966925107169398365177378468427451963838357988772724379938552570639000579149869031871802996262317878495487951387147793471823162842905089713168174463288932070866268166742939936701885439969741852286482990331864087221420648217155007484640951537281262946102741993263702782628477612970550606991810485268166910942897777960163298103452514315205112659781911617734209236112804461279139226030908259889217027367124552444758317303276469390986144122878939725227713253860491651481656253308789717474795250140462002205738210192430513695514866115094479152011526741032178812184810967813336892919132099446208352223598083800176794037183269598270636414015057643661686210129466083570703696035022526516660146909106299652210204210569182815808085585685815331190886603627602431089050983878781077153487230496625294814683866949645848646326157249786448777131470675937531303692580145242236866809015021390546261188778849397314759822878962609152843068710334259512569207387271600920982099521804006598871453655770591388679774355680076530846089716088963217810071097444533714888504223200926786329030231060090551256257250165560329397090140549066264232123036672821319230966454115531503515205846660680856569395843071297454573031100702443371672232170484216640578429958208341917140793649011135036567863392262050658991755633591464665774884498366583104637300901951225567898191128471887904664301538473513781724660473687357203046999022353668794535638099990872469171418280848004917008795775104102901106398026343297879274003741852922271212480287254534759667113176447078334407933071069802409625908931668195954707015688810009406798419013039022106889263298167170719202023261459752280570646642989917254064052932571549135968217572741673739075775970830375277251727747774825527417526511565209781418186611058482497954469302630998645499960414681785679619988378325498649106629428343060631064198688604805742489623127232254197355461777603181410818800520124392379599577546892880129963301551678821757790423389923774258533616420444211526005775266029547750352231951761925183238829217079763196191871689330139225883360789189966693674374674733764488154705090895092385263732654845689751699961548623417687206417213928543694076916909975931182777813161533377928827698979300454430476621850517642119600412926040563104716034165366227377192398939259646638627309712625364587810089974826900196710681219898519823353347055736689855971304894214298644123216617237936331322446591970048256831245679565050153276530406516167539201095112458175310853752690633126228420663736729506670674970383329127742061407071052806104810664528209339172685650000428491478308554705059266129299164685465293759274562728905240486920431355497795362881102668727601050416764586167297602136959205001493883869133064232334882038268988669804983226167418899734616904163901785119632047336745858581881205610035594809805662199506409535615536519498457667250294808364342203071968459934514386932524066354552235442741681484324621868128787656383039716355752632001117487974417048568287010491584433639283277267718394582537055705912934128897742542283610908098214601077691565559969861555580958077377036959941638484856431869731455367528057820245137179583627429576790905468453660000956882777390669669244531093854541225275271790751001408132872992341051585982102189311256335063458785127355033629049985605319783893831811267219434817629975149893745656425089727594000538706155646777661988201273247033615337683485384492757551839209929866855052062004216047344965979911153857079119486504889920969986589011371723124271500478159625389906427397676829682132488384120673385304601108911076804952626299073262589580620426936918749502245792360515765526488072381630329397724522732947179178445100783159832779841337790107852345795960847524864992630494632630502240307131701778447300104431762502559382879144836080962705316635589263594796058246373048135541155233238424635971919339852577604707191853441722433691240306539647573197610584368742308138795600563213952353116124337427198968827629516344478781157894493840947041612892336872306269893347860435040838388933340212039591429812810323496930630221445090349392177034796989010771140178904182524017130289607587669664645411694341944091272342988602631711707797285984177475282616534107672873134877718873435580272061787405623315867536655771813566863956863425141212767539201482481731873278433598219115896818868359465355145531831778886868676635975876210515249935116917208949704495506311485683432461410871354729888191847709877768386570354044799670832730238711703880395990966974170971698519840431401998759206126571556896988517835257028675838173323060300781225988035106483882215167544210568771412843852967553882280860789400711044576285370575440996708803230368109671843423218075267634448203901022225211210207908070061627999246395156317403664825951111809103731150088121305561960763031157781555177309064588963830402441339526062170663399936493961496699452404650684960595973778451069149538542976913924294859161641353396949101527085914231496835695784315888332499066345117901478648438472412403807532889464101863952823615599987000331373405543224895963710142958595302658688257075773556913205251830560572250002579251798512708390162677704479728869724904483326232093972101119287635133337093124799787483250436303297910450786966659348770442680400318507489220523481553908680953973634938375016009778673094167792409533375077502507900983737425492222574808845545788450921990699658312954564384304214961864053576638416364036398658430855957572557097922853424109041198667510174281795222548983921847661996734873302379848862763129204540256915255476779840183744853287574138589987204876494625093488468635874429225515121729007202135565780851978219378945176462900974788403633130125067469226702788194309827410370012835924863511950163933877443971963391859251876634790115301791962425552764075682747881459038844850466516218934600439877709464091095525735757877803330063350439428286187118742244466221353212223926406993439592780656889140563193057420701987273700983839802476670054144073805977847377491072671249833425063888920561163744776733734951749170176246050727360615115110598902654969342886800121384721663045744013901738547933544889757215165092096752343276669082169300282499280527530861979395738861880148108203124277087841668395667011871660577076534560493404697869464391788640417322998113669778554939369792885765885316065270750112849199799863857638234041995345553940320043698503499098538158416789020492494442781987506315319283873750757251420904113335467002435702641907219446053035980360922880801629354590104854392471490568660427571226469382410841148833349372915726969068744534281201935395019379870907775110606046464660590976199801773293834505540159501611121271286227607302013047254260169729669040225235475530558275824734582577982548274445333987829997652087683205539218631471076669326700026733153340897426526825923929371633195382561441586319246762215697241672684180298262253761758052481728324226899917637480316635500453574220867311272984675215456664156012542934990767785677148383289469844239079667351299892949203259563915848664215409656576075017636428313786186555650977944436897648085003740279853795111664670735084317964055146087996832200361856630846843368308662589942027499438313117254793870473984866591610070182243805753223100186404971617711869455169272226423992991356758156317743580933984163280685409838532274744454927338189294767957550756192976791391437771660067714268355497441186079802509298327985242731065835226423739958705329061348445019722279032241885787316571158887236495285638679612272584668759749625659827987822992759194510918888886000030510468744161254127180932971044803721001121125507679160926120602109539812890085091814742848225894625788085258396068342414285072475748672947464074851580400153497959954600167025143443267227775822020600211727765010341572047822262006647870582868153835240721815278945345264967927135386940729064757245254971568143079398423485693381786218866137772927720311366711671479958743327890713466030200557299946681945325972322198643222859345728782514652264673141646153559559689765835565615028950678783496134544531769744039583927517230720812996457457010534154357901674624207102159992240748437060488022345849788013322215253086888650356159747840866868404512321921610584501487994190404000385087294284689762375366274437091607025244440013109166199561871970637565285487668178466060635776487086318451946755414657919330041100279841477712430509882326592612131758569267308127217201930442063301699173000313238643759403620218593564291983135826254751217761193446777714334693233960114489475149619914572751682019493063962656696937427388436278804707755845835715976056005486131969095994622516088490720398090626179655921560037802730631308769614816826917912658867560919681095155157622686429789867369749610207266426711648899991872413155528446684725429670131441933769735633421417532923592761213917835943849835902366669514527341287426797230561269541895176379101617874514304640400795406642783046056364848014679866318422595845036138825142312740777822905079479330860625368254749123354993134397643580589024572895539944026308788722748474907436794388125625816483019104519326579349194482118141938783492132984086740707969491454232017512216073055116565038135978589878970007419380937775539772966126152251006253832441617978239726520877837393215628488836809777062060685011060884687145436944300994951178515994917342380810077048027292497906413192602289228480235994105855505537353317529498676039217136733880001545374778048662568398156607321880431992797546498842861393311407539875297788564951168738100278429034206222336113811954069339358875302258749023341120406665894424051901013357046791245189787119022545727172389117143062143742841985183979795019440982563349506709743017220475071461720308342531190840176472993624402804516596966193198685406169673691095952954256464969014791541143147568335784676610113196250129913960157605172429688862206309919901747817265996653978258788684774221999753522843420450827063907851458031041804755028104101843003123771574672906592886938593501194700185432584822422078805410877402213646363744993438237372200099798906286701367793590621395260669530844228068811504886214470093044789973323372055427177584131605645148183102481781573629233559817216564463099664755162168816195984162208108096733742649740685857634133832370996855246516779398168658204807206950299520882131061811863931905750102120933566348121939294177022997528636551721255226324944332471267769976031315040021989995207872189128862829110391681726111725991927084912574667677700379894103644736932115946745752304341865967964839055869309675981625733462464687520174588500353233958893245896561704388316890799708309486055837067167734653978971999422127993621594916242349863060816922600316968508347896329730903786856361065138534919558018755218913520645462104902005394331794210241298118237016741607493312985286278086110934995303912782708050702442936639502956137006881148915067364026634781310026898341286041516720941827513974535618974520349668945154164006917502631685889073137313533242606123770404881372060861805447112075454044001081579264686018396495188330063590442539333365723216789071434197135850629557561308462230931076333790346159960055128493358583818979267631669080241678481552247977419165096656557532549390231514727410658109886011799128928749690910523704400424930968137897795415685649620802982612339293002528983844164770471796089838497790790359734253953826659130791820172098681927955231854647730990219409438303059008363120762119870389495192723998009457526398039003309356672113523355424063296622727228413740773988349174758343245681350702569233016790350424618177190360862284898575597515409057970262654111627130302330007572361451915326952072671207146798882583599217860852873704670953307674510859873318847723090613219428724122627040040481597274898391107113403096194222445811211903698513870988986228610391778259202166307807071310084450432187026283127043603251585848992425513981190889784185703525806113724963220382948766593997782106395924667911974365747572931683599538261761462423606342073408181086208268343743847343437038311238819781358063651580803241486340693481695712983675883847991287135617212002339676154775693593092646208835967665013118388366917050508876515614846451813050608617885745105855296751645894544355233500533936206607650443296660431345496295967236008631591749982435090008893063655051545469942017771030679299047154806472062388488967289690195622302556248770419915637726725246345210669708613814862134572389284376857294407378026811916330173502137329872241946647037915122827002835750004260122051819403113397608612795736549991425869005574938102130135033100843745808089255518299725829820311514687314251929496725611452840265226908792037906834195817724365646989476845058996747411975123822098297885890957888465088110452259982013956716248191931638554691006583232561087562994010338532600627783376535754318365202312601314272129903065135312193270377654323724833876304374147036076888702508654472410749501430841337131694657550623465432803336923735047829703469407089607597409721116689935158322370672036116835502542683146775012978259331590043806778992375789936831311001032582272089220059141217150209265613999800031690607252100752860891400786987866836590455748498546097779327044354009195072568138550862335279570159336544653092952078726414896589009842672386781625660884284521640208772879970878791852813100537769928820135355398891541020960271247355670165772559461511843629810457416801443381623668387912302490477674305240993189594387759128135951084236256509496825372672803755600841151468292478874883759139619143582963495470948717005320360735894520110952419317347653595932314738560443627118614575378371687435997066570902533500907944229027183358249863359755228673949440400985157462531354254931463040789009760755564707768200664254583106396777502173977011779761162591695661667757085515767174121956032644041873211303064639936383485397642602886039465855993455724438304527643098415165369638534117780661471472117442418644406789292057217464628911175320932679743930157389870638919223817744307542802337175214780330645013770415853829362519796296186710830051272124899252449138761094661570532082786671056698702515564859971963415437761836102123792297565024987541771207493046268116683668582928883687346982654728385679818360416502096954825087215040185134493564337322614678076574953813394151688292522405998988158522790242901479999959390330184889745115181289611718053753149362985376843211348848862752975366660486048775903760796760315879801338092613264056569609853879899810450173688274235747692258319483747090648978701128590512497701684419453560691949406194888996342017923537521071263240607954819336849024367788387893521537655710008990958531654754847466247548895280235122423179791458126901570952500825990394959375732918883868676605691663329186402414282003190491821092525544337283263199314605065091412621022815399406784861479530409589444994436546544281880348215293745363020153803928117925540736367742338070170204037216457462050483926222053392916411786513916392275044691110444183770852389518481645572579357971285445930944215777691845714774650755800896761243626743075743544451219681603251134602145148114472385794838103416638605364011405323466988219722652269462589364655930993041484342129511659728596929435010815685171724801484282461602480587695851661475891797068477649087384583290404783072438400915359900626683447784129304277774241170260993328187036608996464392077514334695627019282174421728534682580782232817334753434161212876372560307876809289369575896584726906987610006805807573221747516133555558610545606839701132533473603990010024704119503243653068486814538876463533276409048407026960782072363228356183074210578567605203953556568759744968232961549035928197380640805607461014792228935969638656764258804151342942002831956689035137891503736870675762591885461187849353785479710071938505396257809509324691016255280022878892111668322563640643718892790385796040860146947017290655657931032576635560098375624076125229505642009045301096688274097534026195692023333675420617590675145094678944648783998313365708101475587379733907060839504025964024588392079521898860625982310227454171621894706673632648260285727293421682553214393567970630049863495491728666685156716758612554638548309651087583025416294489197375985069844778665026837076697133845665957667501625813220080003166373613929473039050604951231461973066826462558971453886183468125868519657324263183810996748839161649630490656222043470021710177211106171577348258635757286547812839968230205046830642833160738155742995704438431950756077633469649727547098778310871533262285909704590780822044957575261974208629173676181456833105906148851033898356397504549524614314000708878726193264746497910499809584093509142797665825262489489348091581440248883157939628415846087124409014050620155994503909206528278092350634458768589299549798913682126102705210253879578754033093564257222498690739856353300639314451247617667688725335041013422321395258627635818118393569342317766602677135897377303340044324482461003236215888132881957347077369442587008314073612158409318414151572458568642216058636527016151490345211139619440331714419381071049570519306940979660663621165670626535614179720407190529333431226261914724319981270230086997565405618932233824839320418230087325969359673001374202860485864527785900446470674564945448940353008840641741524062039224740230906605000684811755872659779861763167760483026362464112214696967915474333334471347691612350965442195845618315046016080730029358120432170366644005410953673238098997516534184058152927679022005180147397714118677992411845426984040745716363501556393586395370549815997604925068279233709219319047357066908762431319519889690121323630030063635928027800041020761202684462998920419424394982126371139350945896208534532717842134502108193609149770739704020223994465919814021060393907621069381155086026246189620557041725146501775923142913954503314016253672350841207014649715008340534013998633703222706300802096114788935890146618038040966748413427587429382275108301219755291704297097482277220135174735556335784617664702219365478126024489513904224477562290330701241952042317367796039262701091550483016780287073904656060633311043704688061527130691751613599110936242512979775035123907281715958907658201832685895738451310667753579437559156820158028481035499363295213306957539113095328770442019111841500492693694352346142918309506801313265539105612805426637316044598090420547621937601271630153584950554848615479758198930472819683489435980068193865809088764031454124875067234133863374993764474132101458931117260777736275329192260092772351662607234295942308254488546684797170483611544416304109992615608482603064518589503850086378576174065803524711048930788376951379451002486760092349243221240682790665015581259341916014759220417133419497099864432816269064279563940167174212747250021759823659907764468719233028301580229344634744620136975971059304578596711494114679536564120836895291511379409958039644350896564530448153530048530826966690834221275057466311356960696843480217433981265766401410514676218180512523775195003593195505497543630596524997308642440820131206482246229274198361623324084394700717841373016413320093154898740873446767772747317156909096290779173400394126060594780779983626123999646212076443305820987907877175798270799749067840772406630384621829302863806914513307912871706867700126258342803381290027344164768856943101526349645289866867938571326586278096690462954948467694620809451421749974943115342403577868485750943622511225205480572268723955350749190873367776546925041740741879736633098488854566968109046313385441783085926406331036059330400293323264110494666631686478353045094782322949773054143573910078622342890872417200490389726568989790277740080733022914232994172327861327695678088180017751924942247566663140679452761384830492069555817104113808325707514077556339405069586236820637741920753040581089815479204913060664958944891559573061695238118300544939348047388732283063631773843827127539765729777680401672302345770374407138896227910626302956469993444680533012026656774855155859272851229520618621608391819562888693820640926740948200680735053479522388536521241442577035758672433185784186982529905837932338916462823651433988377610186165841204661669967705765106604069112458527564449702314289898931551855459733129721919642605114310861601181687916513001309022939858473328817063689700362080047810489342079708518448452548005500022987711598665134532181087111268934534328318343922367587711749930087702785684699339418393370604462962973101815277607806593521191738192595682142088821558846690305898400364697821174567946489155506258598146677290190988236884961963503487021558216330509355872238475870447211765987018257287111092085084526892358869220296798652406610861809637142425703343764780725219807966812197357581697755003289164623903671855957217943897326177582533159546085992422700804750555650481269411331839477081104272658040186095976794783562131510514174955833480802071002073953525033894598614630242151096413505673572071047918063780160761056159860350816390619739127809343640657945398363307767180710610411079651875456300380597813731971733306172286044504371221713537350426164228190997256097909572696378407232409895470471137897171167645389360884158086541951799291524470664487400478052358617991922451848228297171185607300191388593880007752803667818505448076341553103476347831844841095709008189809728882003647015626613964263129739087351666144166652466597614139702266452308813523988239472041388319735180173563373191871900451188530112833071139081720770782850749959674587150497464699028139412625174685488294217200765072762910728838961606345266933357843439897697897516281448311262784978916958571569435182920113477646495765239390794495570417824140984042645480068169946581469030878698475994287722422652326027185980617937712969289667249718771382625920361513327384904850501000998114089845667842687313046000362429137588911734991507042105330366666525909458387002080823608749269644645603298851637345058464189453619386008363861556688731709640380064217441887087300240961290226922951280552295972993156644055708627170568595216244209247298013993083937545509590388210741990123909047638912265058830469593502690386217416464046586287610748184898877308046146569820539935794191001052619006421038585371787244449297079883169878136694267058007948509349663794927965936014428524082687675358328778787443843209129186593552537349072712424871770241608700065031187568114047374056396776077398686516437954653219994711702876143815392217670242555989832668433971728350890024621929662187864485637923208836572560996480100048268769037913513325427259524289491827057596423727353355074457318752452965843906397559636353291317227242090174447606525047223570781208336682924833841266180997358402857703794175368523621067140424753853681336922041647512344409512819583934026023715583705051176723586207027425187536314918900539563671963828817286082317031810285565088526564200469948617678242750191245973897111956975193098743334820706757913410474801721613899982573920547889757636543006797075019748956532317168195745183855191205111536214463118853616381498289194801094004752400656501535545690632527408716534941702919366215228046480193635281531202901403419442900476763526076958472920930315696804048653170068629259113933944394327495863177943197214083573798487811334751393239782934258024556703846732554757887772274684611547959293813257945749460396095564598459424934878714841485781074470614682606617863761896397583783489426987224578395132674847670946663806085799620189886861723864951945479477855750328400124821439104178039160444328240045010460811270076257239846715203304279444577717055550218332545814509772405325338964375161974109592451945298184372815838396030313270388636987222222783514038989288773494303709942498713312418373172816311329454494651335027735403283761150155005333800786592261823559311352361761746579557180701142581824289759142758210250775415898448847321535285869674863347416883088633624710758720898150259927805107809888378487838551868120588043062895780700565074404597097441951723351327721085513002289474906404788546864615208442314331304247490910441621235795982761987971166022603129540551037814024483199045375328087432157331474024882108318787432546976781544369200289610955401528436764120696021561233074471042275657664993278864375063459711215158881708087201413244835076078973637302361320618035931585909523828754587007759715345223789188763416656270390942193255315607857626877071995250688369733952321735509966323727040281277320012110453534977612425203975882260078402987008611252029540822880854215838192597872225077679405335241793033061327947601400167511911455701107672291287256525447817655646791802004636247659743476853137136862210471640911894672472505519290031418014202268753185787983736791358793452125256404684830813020754505899937623689844643257960742795267076823147334695985292113788273994142265982879081020644143010506378331768597485046643557169134580405640327310066132924306142950801060449667479592111034047892125204504906360685556438480343255321497402247089601597693504029929929857459809375735507057700636462751639413940438091331650256616343752637773449919118869188353291026795503605285371217648984880379189363024724519012046587239591247738829871523598520768592444979511202805303768417725961659982072208392816586006961304228184429244611716972075134652235291146573015465421510799610551626221891210793113450171933621489523605124452992178576251959274225436657206852690381299659298902140916891729571529783399992903312332588375853645116530830121720118096443749950833667518946162297993226564496854379588376768733539243346196393019084495508585662000336264613363460430740736221708495051921354948641139184427387774857319124901636703784937856639574319645386152965391940617170866665480027355212103991173479177917822818972083587131041139093058813720517023388067709019322830134516629773745953888296837315222851238270326733028573894847739710886047171620377402100186050080717152805901833248441978713993418471288336806899191322827921800206725539346860036816419231833368528526016964924909058826500441037658405474585577418025768699289796687394465025967385523013065634352429984103575744216015001434333604992718841593369800484288140484154042385886123178858994054587981170260521464386561505684601536474066608847302898590862969861302051642646942808393491555698002068161778054412558586627569291285417534290563367591213528089102479441080181384283071543508024258233827052798501088374846022990451470038144558313572315544105939455675757241238046473252917674441145396917258849969795149321892375732902858818013916725634381263589489511651320033334469444136564780053430656547896719608063922033607970040766079192180255472280081590720381394855172314511766190717139712075039713922427302495673601667969113897831761087332958016942216088430393868121976923691193744302086406139187910826186285950038039453360652046079926344933379591628131054039811998239768492550664138963721581790461233434161262113706509582340578672124780586465648360613420057891921358563096588433173716951026574062111221867304381037222899916618776262947854619435041122395609364134907038766297949635555677782448653804710319449010789415992372593172055680388272833558165486384188998039152783077020553309419766113912098908518272201292003763237649230480291707532847638841051238151633878861155323013518366119270979237192810117154023646314360130307523603701013511938587075466321083499368517351043926778711122861041641548898294035965417928433190042328067413456813950324990613033216416126757313879736020042370155853193496597099959295979189151306510235201908573852455443107023493716411646073099004568723735578176120436027258938969618928129195837802586120535221027660915740183652245561797138004043915253121400388044314424900890661504493162702149254632710591523448883697280365931032218064123774117298511869483575537191540813017232730418442604459792414503647987833386002724559830727811816465347286244726162558329583601291342894683320113907250028320100212944036542997886133295951111018380176831528878196714743468999262281106906166810908248865395799145985580901748875809819972467335748340414080661499083863481957922005096778108715105476045036324033736563042968929816836080973378917685454632625632925702661440472477014086668992701814807045756042239789029993522146356026350047574884267167986856815941665253608351766139609183551127616398741265445837808528247851850342665485261629412261454782035776040122396648929144831171591090932758091972212798275585228352277479750123428060691914012965412315217363404990192501447726435463634127998211423395332595364550087248742456086318631438640965482422228977975666568684836426026602534083315125931656853940937036012730407569151182792367028371113774494680556634360665642600791476069443190626698039384450269456182015333301279674131708126383275910554446981254524126019431247447369689472338349328070464616405788618742796267534056757412635367992157990722568295926798682748677171386737944665155343510067542261796726527453615735685800717474975122055303292934567935196522725512234224258371124552013433211228040931164744167953573523933122456840310889229762320562957860335036982774916557335311062169569537018865342522260801047007039186162044892571911193421285999818975829542245251558116748746806620769613137333290098252553289257744586033783418873752540495081083993681356101348770342575968188827920560484672554478808327250297755577438409018004447311017544161496644058157011506723024818373577257599564524029630799076199235302908603921206463468507330339301678674610381102105610840337056334894459833107826199914048803426215394842954702355892680134565655916974794212330014961038477527101012696037913745512806743594849917795184124474070013023687831110351164977766205669924662445946116823339256694322895388618903862051765937703493259462419357510354892465528346689262150128804947583324664859107593861243561584537841455856466616605097963140702742878315522970422704580440855560606140579826376960730409782512828976983228766525869324131944438033734382205523723484270310139206612078031433126169020059900319519507016408012183303925286350931588211403800722447268282528180945541429453017542301664825698116971227267442130373167577631119327115247461035804003495377430476656104907673173980375913866969279795740469475814850892733867781805751174587535845355649095082393218420433444688670851357625152842772302505948929984451506046722497359651537018164884977135172671817195891844339847597012755878453524686988430962962989876928423741576082946205514406331649593657913220449691551734663675013366865967817544716040973024852831980251144970878848061637863073372415328387470901358421506292734570489282578334119482188113270880128564073852225239322966761221184166120166922015727516400332071770815544292951227117179304933319953850663588153864936297862472901770317510892979321197371014103371791462854147818405287258270599256950974953086305832469722403947642185246713083356183340926492568200046941872888773892023381847212679881756237511285516653179290896028446825384913406757781422320238346499315171597778612719618314160338921753000070368535535176074137583616642562295471494880806324967184383594255816980186139797057266055920349807166324781526611771775713292567346600650687530104417523758250882216749609227672552945798623710096928739710800947222828358271059736421514559865636984402483588143574056644518711446781494816868724526873159698810556398545749045577462648142147613200061068234014560007123731938381389781345746569700042489453701169312772975016379926667188914455961520773730746170712009750662702935456133718575588419191651034135025610677707236317895738409979681958559770669730663108005661717854728254993056370023728693334228604563997069502405847670478474920061472251938271334970229636519106661611683604345425789987124610512997634642671216575887226958749286757272227578542518286167660061236006132478843249263678399861085766223787951174172072127810775570679108956720696283094828242078471157931951328637992609783371398782057567448207339610772172938210185207570684084275230185679356873589212569968351321970940014150809611252848845119930011857346239329085849131747414101825307848659850863821307146513751010561002220431525319245288361565291197758131267732161229953052118734947684734881872207098573294217620142169023237211189240744286690998484297564693120171080989570928275868168983671504149706065121840647743633025733297747653886199755591190573993565313138768067186528805222445003597395915774734018067003843135503957043887458131197504430208053196216918906155064134519836106141731823773717630435369186534558199162686330740842947624490475756102896451300564087007078552011119264072429563111598441869288731459529904109880084187765587038890566071620874563406565211890282942059390956244017520681204366628309538443228204742009640523267150849111149477416084801395556714041203838464496607276787341383602716893134863224716639175805544667138330296554786054134041784774395273121347913583439652770248898231791801058627401333426727456016680640071401232782431251342610758309442566492995491553348084239167427935724666810899168548977277199192258398409451579252156074583657333357239345853015404401670658847195425270577813530330089119531194729164356221669853446966570380728856636608493717117658702905346412204888767269917714238663107738640965960875937756724478792074264731766072994755806975747626303442501876098410800544303987946073691450962728681732808689629982068186204264458405458657639691476072444604191995958731880553484639489604897496740307850161934551786111154196150402204161552630538156209299442198722424419616515667566136059925007433114991426781299002588154143890879005071923933905078682288704173421516220705674210968289039102514530493434127406550653149017537332467766409460478586910580156521859088907129027751430087522289376530196846326560815225825324265656416960164864973035948872694702131397786935757585737220406773900190670319814549579496979873765352680019045507638534117850061385580960011617896465252007077773434235802713138531321271095456315666150386300708036989303072192064113447001014570296088804541394998525807463149405069424624713180533065078440160533370902846651378897292919402614492958029531303124764636945198816386602837379681002477306838710615558906971866848887628265797616870959099166397856572275764303951575316370684671313104509199488993500785844498667048857895915895273328996273954254845665235802133169706877733647671907926805032821055799253350292846809375408683552484526611481287502977312055167775188933265105208325450920832074413674723743406257975080185746818495640278115291865089535172476101507164405204252498527115829763397921990785979696885804741800220608340496549460572714414966913254345279230932537782405446479108591715639341508319199384042646414902827507894532070743009558247568894816901892223842722233443521511046605739428738329563572626946265822880582196684870243494135169324927458259055940266849559471411872566787116697439426128019155137035761789948669860955317335376764494957391545774232918383000470259006165652695636509926450079013968520500841850830545006288422257076814754409978033132636377729314589244717494989926736657828831965104259106143376637749009231032939654810141484948154681516738248253429290939940696794169448447233742693856992038250550140050803427673447803742848950579415433024716000126464830973040895476281188361580746619805460009879357239876473651314822229030542463644829966722944868350643265124824926327773313064932219253407834517831452885723255931365779706920532205182124653574607465598058240273892097407736775533997722770232173496170009312740755620450712302337646981692273179914345405548882894218615150654773967889060040122478591015164347467431198015792042167807412580298126538254203892467692308241215902271165371086829833437814111191171791489827965983631150881446390817369735142890610911673073211524748480541471181771815508633339478270661213819371017453260565192900951467192242268054218632238074565409944819501818701560763483806141755825301633914709160791212717126529989627321662748400200166036579115327360945574489525082665285750145962744997830094563980157452112658488922219223304812005514140629654735181713416881223199085269921366617507809532018780198548113422009424979627945198293996720404224816304191870622300404053768250232123525414857381873373706106106928309257647359295832362294687517843999224870318016616684209307623660867793370107497221565609676915381463332590776186637627657835167048298022383779474815802414636975292274614585736310774399470597577645809949416160183954638809723205265789913479909998524678469609128328762457589809672861835190193594734809046365883848982417882649251374502402653836140456172296350701034577765921911410523270149610027409980677340406793398699086907586834923236814959757163758883930022929783534545515160744172263556442655506384339445295295560385703415434740507751047945636418261549601881291874767212916566915194265584635185914079600174600722635051462664448492488113505647473210491723822288254410094541450126235293391141581578135884619918359316320548891237697803806729900193558121271115753322638252577747594635128128128915595214060659403595102360368989201470192099908499901324227462208830467562141411862570058396283068716044999897753751294527052974728578730832461677297186496245221529988967941022310405727259667672011848665097491810024547238233416007730850901476415786152805367340848343041321082257192963869980373082986464700819143575295556621159331047588787175688058926647331852461831312381816595455907917266575954063237654220451083086826338055142233771571282545353638497720557962379797855917003637548065343324996848640274452566724728413389955452588763002852560238558663308510344245314442381384708367552302512982234121609523870806057313185609721641064559783252829506413963042784761276091224478391334517238497965684229024564035124432747373236342667424221818717559369131886869129328736931671231720383856181099809736112462488272278448694027429134252038040319229128228623227310164749762385708910650298239109252443933689706630238760806464555645332641940519162022635551263204528915559313995043969696009882230069920389577185647462979446794016984241313600889344006598591418369514159916601176288969471585239909002278019072629954317227727898100684241644450015715958040707953560583448703279582434737255441717580838107660210277057319132077182730408311978705151055059867402525052423679373969934842066861084491586194848002952164978145527709043445548595306041895343346917565869016916486097779077303138148582706640305960855734186979469899557509399984181689358781345438149547942983467280403426424649617299214167486349250994114924723961821541984644628982128550136629263880998435530405687374990787111221819292126627394604679203502580132988688995666616455504716923246546727394267342090737300015424323980305482243813259007143927862075540590193698670973693368235841418656627516750245951408147850078795603523993415708545071724496057850674307307912319500297122712474922590708850708061155772049386488119936534678608079797589408409063773562816482419670380176633590158767790708650745472857316938151541147523473958217875606111314041014663120865891366328010001363717187173471530234517696072741037985922539724751186617550020674383288957772437848507753920660140252594612790556604181799009359579553969559518802208125938197783099432596184386190154145893160159529622953505859900414402365593735941065536893457551056408959494795041553628654163167867713366171624021179477809083050381343808496221711552326379393738488549467772293197987142290679982787378942297972891074616193253107928749013225817858884748606822398498794767473619332660647395809427929260498450786341386460032339090146096436047511618633264750467975905471763003048114120256238750204834466806316555051802953362831825659160845494838454867352598116677773950946754111559083052285277116612851974269749160588701358772164764688275603529459332869134359541600808061712854545595692148607576167025804148184688232553998752677244125933390302114922077485560432064516433208974985164225802565949853515564694336543910368806683232088973765840563691689464650642749489264998190778515460691910620711509733033582117917921037864234202716837363771289803031940255880150024069362564612205918799012717974012592144199546593021958352862985764472448586461730982148434036814569728246828686544441312130653249313358527342204905767975121311193978415667352533223579206079029726425343794753937751550658479166856690184265412191549179186497429865855222761191146544723783321735532095138428005991249227736829326487162801578256920444678417141510293210075248647375972977510264984563368465083133300890491004562877393948196244583898854357157215230405322632052003423033124751475632552741371965435980171958691013553134221869348309663687247249228583625292343916327921045716882822085808920602848900702337371826202510365645600120030794195586416089827966102283429770430389701001902403228213682011927591950833690302887825681428726908093745518738185956596027445713889847775588482060379784506331154187817013402173720623159474997250275157933388910590985328908693811292053516009296293413852644953442962192430493993977898553226715602172283394052616074895526568843082011778629655379350305520103919377460672726351932223652936275807480404825094205014288928344954038769300960495520607483815647467741019556453075110876100414143155052025363871517728997417994750169618609693831001002050519644043760724932132918946868388922149356785416896097838799834219915874077950503812645194048349968406269676213730790183229552944822679488580737130178634489569148521532571318849048321717141000469240203976325529003915748928561914810294529079036034454376928453441347053274800912244626546028249940308652287979974039246328510907964858345409944407813748790094811717326967564614823931914548010383184181945465174985949807669682784010571886979923410585408195796654729040753598632662263524346249190548991568660663800918723007023137390899682242586022692520527576712600620964531665843762529969970349541150081248410286735298246747268015298845279936235238097201017802795064264278038432240972963699786803607829108434633114147608980381079563614206365584469202586825473992675070400189165498930338393911665743045551811061769441248366768156277983671014811263402124166135248534411374212266181136196000195862834354648652748725047693804764087809839238678079201552341809823991297425713035238496142795414781422170748153721994328585050620893702085392001614722777820266950946533053573550971081217539458215349452736653979214346879358866972580553246740050877930230894382656773295351436757793384746257980254627715502820603665111352542618178658642063932105711595763890907636886707152417996073392657697422341904925389373549144407950283133570118955358952366978582996511053116188120508729170181554723016757359359308531416861823782917128467439525300110033888717785471259688834507092637889732512908639652903081408602432991944976817278440171930874423452162798038449139466314639609806267876667053056926081254132294920166345881005444440445762806804723807716057821801679430610237159756900339652484078800808948019219535820486655876171250124756233307000752974023614496828560674582332534821493621686068580091094238970196074732727721607851788391007661982744124046221714675816145467120674722438588248844227332086779357384639525406358646267454482275515165454156172767395682010810889397556247828611590444443972170401188649698099356359968429194261471077299437668685317704412189126758824039051042489364243950401342178858496287752314096691465980274442469927284801494661950549211401207024389670861381372404557770623940037594072491504343549138034845076512907102370451670135432838327093435942295406124155809646148736928174807166159229620662416314777179210623756524539000222325688248963680559554948153130819324982993699067956526299399616108120481337442100480865331762841601559938001954291013910061477231002624549148509187792732673071020561412562413239276121992843090465811653304877290360800461289145415081832682289389150685900907990051099481362386145060414042011349465484367252233470521218534914422209953089058944579725977522823512464356113692473202688869284888468763928136368115158931440324233299465474841087477518609769059905018557977050235239838237927589798738292857307213270285553173880741216941059651113269005203925526886391435520226221435168837025360843331495751608775508092619182982640437372630949271848518157418534208410211205947767048353816786762278090109439713080567858495995275878775074444910838910766575168950699121323218187115604025206250926080932371783676780725382495364979550383403111240336489928561724546994919653581088827311879413254512539226698034939495269082662650545133060979657888686745500054645101559129872940926498734754879172749127169191640362364349646868761773475257192231288646489263344308473979783804528273616387727764676187176347702664976628122074076100090035437008161206296955688867761250675235794777638316506873584279757785185185030461790791196931941727551000507274696845435396697302352100468314788450664707645043978354492604725090850091610552828046384056916309859269194911581739126483898487217416018402754681237905933086509595525004211031225607714992352498810009145287527168334954656202366280358787062702900158186024570876058808909819102675232463998920913730459759087404025419569596830984547015398447157157355307766826944178859780161165798332102371458844652455688767841067941276467534630805020188530663980382520390533082774815782835172830085718769041768754255233094425965859731630400993250058564035662299646667586855250135501827704602601150890289057983098636218008520500666866418730359021907065362856631000072872094846662964088348132237775292006873950764841130602160114144383725250829587575306440652508769464837703073943475678760678478858547339090065580584566479414791817126081070385330402431523378833716971493952034643503746675585600143353599341659244291195240515586107876349015800304576630528087525085457367115501116334859878721753505583712136262971904863029079574921124496536250925445124054004503575816083603726814786734214206438228757171850757540593654195145580046520623627289450218752622067567453328359148616159349223393230317145229089115428461506138817166871295992503648797948070272820295263054201554215981711788049869725551899800419138388842118852352807666158579797888831430562910441072170529209641492352653984446193200459068334945306002829114716013213583477358773868348858671937371894494991807599199427064351426181289976793600100429687549215207639992312903025069051543668851517463354352925302527959916333581334022116202641884660704337887244253676150324418134911065424852822246200308057203399382190063792439178201609315367931143083365408587036746356247853189258512439408732938637594722075910437089462509182943646543812150117103197454105362453430650856395916575307567943012157490023936279145511719931879688739094256524063668303849963045322274810308829891930269100148321495996360581512070356692997485481649212153095569070693308429956710290178842521817377139811730497966988911918846249247695010804241325413272011950906293373528658225638407551964530892469503441193846881923073362543258190928475571515568541462792634843426300365764864467050280513405013715120515198987091661036714646275702138693779429992366421411267514702481697914949301213532608502584684921232056287757947721859021552326919510313355044654094337097112729530568117269450553689736613361153344783206851321076828073696837304541981568341403141030486956673643522917909425082404758088139029138427021207709080193711976994805184880240340359047169353539357778702373299326560222274129944734006526781836455102821276504289373423254006075949708300422777306188693702591000682441009989075904337745890477303502975781135591613908873773377975227037207646950982056229363224609228993570606078247314807456473124111836128160551850412932985083879452305701191413110892337521386821708321103300959807426313353384891526578809588756142827259807257711723072708249928743991651573292956479080718440995752473518595814895847524549810696684925689970592266997205201352050706661746217012200268641438773308025596058169805061093718764091317135974727266423909278199061812814122899798244448719858630471897497206930730500691755870421817150748844625274881109624761874849030033839912459844152477208947767666887833066971421242038628663603512288439539546140783777854424694170532758154551655345180998496623566324088658965206666289582325011315522582307051205446717706123302976287332817032563218617373753757823207570289291660552566375633639561276231811436034797516659339423854317158173177764604230901690119366208397245625567624031909637505550903896816436046793369485133366947151237241509330038982690854265211438727797893621502052526986261413993867894231452794481135635506976920645141482738023351115696037745321423043482906558955254687443356924039145042269966431509804272111778049846007829630366792052123612293522797294393474224962732834692530232591406574283579557200308969354246717130376591182042327679932810123209851507767970913857560095551952242361206662438597200812993993276736842433125518511734096005104772846027566561414246153056203490264878481212414520780316951793116057171456525229722369881735953721466499556098445128455200018581115829300556352617746064629204503226218329074865960088521608756035074770118880673178392831676032923659428331952853311205742687776232582830639289966349740188492571195899425267081910651838146580891318168900324466755730122988566626599128080039940556460526465567168830963617209380306431287861502396165068638619737384453212648686430062803025872032518644001282823034217438816856012975214072795772771807179692221834403023224751857554955055445795913633245035410509643242132024017004577711893064557199138261043921598206387223524074862940029270558475148697370815317511446986474927873505623426624942820806913757056857056799106334007161070451063485139053486569632865781156425722809095109969005353879652056322025385063192178937950182075433545949275706530756213609507112845935780514774514351379898968730020404775660993042542641925575907624326315742324710711456931470577846603601594776237241106096290752841275726461980763831219792185083952737156266789795083668337589984286151298530798321621840308068635480680987086161696345698860959242671285134522520899669443388514642674166051894236335613208511389618405504256099472344962453717827151819039072607663032675468625932995868817998114699394412917284564173279013998197598454725766956989000948994278617219988451262869791172187344286770302974727310925944561385295946982484948594984773007127581810563559749012416606270982717376613563615445931617365626853578784862880928746710243462057994193307661699767832594226165012407406556630084680117723108530883415065234157335521441769026436778440412569663963736211063152944585065751403310964394872125891625126435269787923032312952691342579597525345092536890312420561021695800858583953607787901005447885284905828908805361594397110124943273329843647773734580016474960508749682940766579110512921584568242693812720911323844463291366970542167923118650654006369892051312550591974162685056987506752891853476771041953563019872575573757618490195910701328544829031810600838915308378080978745076270389106165562669300009665954077724987189838734951208961321384367032591756265262590215870795706280333776887104249923322586065182596457459334110296718552364193682666170874372970758963025271200304562880975040261527714645208383557968099463301784562203042238270017680477907385528335786546848194312875537846500166108048567109851898601917947273427205495827841781233586836863938839285557380603219028848113045068765275662038208777520845911592805603326844307189134390602116473005015233280622023188441428977531252414490156886356100008169798448373577515761356084106530495757890446210614781455009409854120917872175865798371563521113866567805812019922515106701363777638525765583406817088236952782482319245045681919817967662537606832402750648746970230112733878823120278246732342051767363058279291433159876663673841118441204666857191169963599533608379249198225862479537251759222172956282512492986445454096307578999907257138850157145879331617299930513618606015942065755841846606331958354102929206950796419158774866101907347300394445369546584667089983097338475505287144283256606415802205891993101729248051933585865738988574652477696269087247429886301135617286504763750010821250499479551088164889574138622501282041183098996973155912670547160804102841892707309572611951224959106492946862897801475964584564290547145318271954988916315104044914938592689552697748568824893221364459625549277162259173266406067865540118567921251233518834153203251901909537913418437241867409392465050594729543748502454775511939732340948201524533470041252959603546784858015253749170775539387464557043515069364606504586608059648013238146056756348014706423796381386617421655180161561723976521258952567177518352170620919622351255102746245070291941287701648426826014156106945705485810521865990099109173000736447850635720609892768138760967793126584457309492270241694061532040865318245106662257424718334215516929685690770840944432406283085552147159860535206113938150398385858990704258318971178099999449989217793442571160056733168360545436714703500056396662815123056347600795029044156755423211039285762426431438372754890998630556736129242902973687343000652298923933763604667913740480028418130271790890986581173758190053165968851559578143730118467145142048003834888688119086915573815428584677026726228164004627386233215902007160355354843371666873792898535974260744866469760004142153316722740231630198969496877129455463579080199812969324535788319576507009498071812734047057983400544023986682503557850479395872582820480285734902883906396228235388187939681220523803448187221231249736542894932418418330418949974392341890152091705872442418226212088492166754078176515918605959486725177363662033266547692848620983841984079882903508136675871094077601561168164909563439060858222248410532232064846050029776886743437443532043824312251492834778782099049945622536451653969608878055325935160820581593746502822078531300423661550033290407044587515682462163911042408851633276735084051888373459040321217596210930603714232942507728420179142798696740339230827089125432259285465072422232266474146055001409844799435780996101585013613888060265572507082593235973838793948375257084116716075241567455994943357707937402299328780451333607988206302122161676127199016812501205249826318116620080373498695392389347306207492421350133758945972022132185756361153615876420191556714981893643334222223792475087322488881575216081600096708013246631520182774340735975865103118395656774450876524961729075817690775585806858665853289920912139413977825931774869853719863933091379390506851958682585623814676476478056357379162460547069852326753522566949447955441699310910093220935620630025877038503581228427038562646489173942371284569125800666397700853189146316709159940749694686832537984092598349495789966630196267195328970285703915938828762823924672514614176592727659955767222921003754150218752569972204076318694530733858007184018579723257254963814259683522115653077874371701812913544722960648958264267106892961846050357185457851538415601521859487410247234125466773893655218878517258456940593838254857445477083550828112981325102356669681563905774039689238957482210977614396040150008236947408067115134193918366460108045794213944225110324512786995373239371192481226978319207591491565887974701130489596183417798643939187722718160879828772028874846614218912770083097494161855784001414255187476059901940926125110809710433366285419440425210091356686086292563522810087373166125971402462993359380826178284001036347651891494124336371124680509961230726006332387869365466938197602890131243337543571614853274778215145111988846694466404763826064417759427701966160842515568071647300960836688003458804577160564424313025385475114938086724981770064567657333580214199038031164656011466980726853991465914262439721201532003861185292716337580872779990126234280142834537221494806629834320884753045884569118870985441812327288254413009559263112357465318667021660417115635922558381925415874997339659657624711891193904316400960460885995252884225509341917276812764110878081420077312335632224246441886995817123966244380816127278985567778536941128018345819631226714213620852072232764372947660796982716190421886754509514661849887466400273619951016964936108294178016660875421506265519710360516224718740740312653057561182646891957100123416849038661439142105457081617108713839373375710916106032118276053458524493666047434926889165146645799266794594316170390129590506447612197968196385172053205742435863009036914739007039482858045048837220745831210886276716216486643889612185540923560858304270896621165317255651620077386632117941616599842411649576452090113838356443456507123681906137117315408767989004056874260921929470068844132133051518862964198523274925473610183293217052998245175228239105960088270413568577333338446949478989525418716987599657579559585871271778658244247322133058546700105255806617023097080004204492202556585545686545183700868301366859244059555895054117347071204506721711468975530543397866087877983825022491110374891954403217900298672753088662081656527327897529864832082388265142299764674853722659407491881953763933236415574525868549302603670964829146597345885356051937671179892519106906508310983975737527629215307289083852045706305827854989044051503767976392002945061143982826154631930645535573755310581822539367204406495757600101265896164430227306499092166661448437455169243822167158998440705062645291146943514848671580067932862555814920094376560792250473991819665700271076608136889180349831198453744664306661766470459326906501664903179659735232356555078269411317325283258811676992362377847602241236905784268463840685834299030132674919145421795425170423291184383375112522353354890213621155857280646592638395533419919939870016358067781026252003839943559289796017466015346247238176774277663194632769729157550492940297077050918810391527099842748305739616834193392938064803366256375569904585928608885209231376584221354972943133645740744560545417715277343235113529318499643923312650521544951510416004923330892312866711483604515250009133984206716050867607309418826670574719728311404004270008911347358181239854610309271874437596561784361647106254742469646179541055392042661670774834795488111918894525466232340821338455455928950807693055426078479766155522231489528222747837583179156407844883749847228138296516358431515963563506451379508636344004947265273912967712172115823380121110415580894174896141712643984349513315564660519502512064180128920406591848841365405814323369790369143614952137806349393990211844710639885233727991022208379319086092596415085231985003909665259702320964045355263625491476803761663771871923097770093276224724296692149648519407421329359617894201732778300682550015760238907758957232513778409158089667778057265062841624298960948562010949213039685119656674390534468825864388484467344374227954639208055107020610318090086869845244385599109297670618730742730261055105728252687736521072734157000021151246388075815717836564547654343345770241081811244897096592456603527592122078579621260393017370054538043610834630952174236747161602760578469152643473791997248452493559713302418483785071765962218381410334515426418196565149274102535513761746033326275222006204374683622570357853258828324876997795652589106054415741431329942881083594927371256534405136089159444245554454165699316170637991543384099484050831983860817837929501493061944408981698179469439685269428647277934669627111735508279356991138527222771789801962809717975743941693603945441786363356683163826106177710916613587613674178419428671576550014962535549963435286429543414955313789911785150305810065866179224791749917667594384120681152950446427291463264419256758457846171924809805200538324093017675557405146271111891911222706490415538277214312543771684165495326315572995644223443122064729558479079317091785540288584983246860400974632234889709625363429874337977921688729258631730415564638619666905330034923700558788993080914879998465951439572065703153599959328937577661410424814185427523167751189584411105162326447683456032387685166982726128953159795782393409054446918984735563604319834420327314631558227044020265205423629317347900551004112800318501003235036325048222361610101549819737663063999729251541689959928601000567836074009736279847322776932819273246400212568903149091164996397119225260586397530858367449403216489986422694938014236679583295299715002134633222124399647203179668606841996240611663649779892842651486420989758726464593481864266748557846418069167897914463726870970841581103828423863028543218997260990845947068926265676393937267577476199703199092553174844904455905452818547171885564275599098249758798927622999683137386444841650920717090229704113115832332502985249374836097908365845280009113757119278967045240336590904353344311835141018380354172348349918047221828460168192564919725720492433535681242512678637393110392743613584569256277021325781583488888628615679603260811686056672083606155835266342829755088111769289831448954700496492396537387400104756264792819983003888431214604670278777801686964405372125803768208238683065790629092275401309927754551721853801945583392138436929126790875865076463901863867556542375177950861791580529330309273746643296110631330157044403258307760455168675414032336028107854632082674165672643707408946801822233242444325453974379512092564984481010647066317526813499431412979391855947670572870846091195472621573964940699045822334016476184508214450260388199042500332572483251424842316554961736733261744683450421654306038021346750223090733541108530596206556179848137772116594338455260458106149360032284309681516480640837061651209915748864586569065200436738450964530118493025688285382079331100515676553103195282505436654179155173206335855441884101397894057463202801260867289365822637978811019677430316322958884938925198455097449506010956780529700026201885603708752838397826086706151983901329810775550622319399052773658171500668287201962882214136055539379704283285437001784972109043563600449620414464030747297162288110304199699808282978470926785790209777367226822131210564567585687511295047404197665604239216113518710629957939256670767818485096416496104954385768324523608203164491319643302341725835634102695885752017213951695559186424175319835162914292486140822929908617649224156438136679866962037080861573660139410264150935162296065791859775568215203251546515351136227133137529762310781627046984392397341643094332351372130866684168808281859075530775374875853993212360096233098173329812178978712475543441774733836465974231945997179911183339365909054308986568381629041392686324411851328119678228098978262719747259994535431066576529239086161836072991406252008447832355975470355819497811536424449803783249020129139594829359529924489590459885963440832393823196365510092678684573059201533514644941423225988171205725132596066729894331423180812826481249805350459172684737973295839869666927160620629221833793949658798378357927144053280432008495854618067675718440153096989038384084609444384487430419667645751448261449996431860118466507670066481390634711461549083160336527325910888585202945712398940616459417198588670577925427952445399717046187045077822171320616306780504880833103319603418608976986609542338882282359870921636457823660365796118975278628058370316076564977300947484583809249842779401245199914840411490075759136884153452088173238363521757117826456874961079878204511167024540659780830507520914081843592628288741212176689678731003774726032238962575942906487959397342746497756886316870601959481314899759544439682296639277897749775756910566830208641406250506335633565486160410184503354080819865787849414946464552100926388270660609025350651631181178392712146006202935377769386993410575177914348209856921174197337390498846348677295654033829113854581014043233513921661184414819667614799786776292991943013912465264098686231612024447287685821571718352027430331132105527472508950652114478769715282184541214499497678228954443307590284336324258183758191230946201789653346650673455029556513650069958380101192805107110609635188369706358807545049238742399821503614291010428104687979590401394848166640094612360813613117549100965508924929543769046563985052591665951161185440442267297736832992010452117118676226598093977855230460743082570563227239057310380630745276536737218593832871697258150632187751953908965410667274638164428995346021592132250592728283444076165995471250689487091992060878476141575227089214315546024460213748683148039965459324528043635236251024241482211584430041325738275982464276719478059720904003530125639896707219170187480084365571360615586449296879957966113347508973616938564979991311453987936606193375123818176526405427816026149370847676578633122257065054425619632890139230620695342647789338234261396867180533177849698474198713827989057210464504260393217558103478358171363330284343014453908489146137052115025011207751331673834101656203123571304915939169946714181361578014406695861641123033500726733604450686583013692984962839906426952902070778461562865167135308316541091027332011384484777785117949816748016423601449341177753632754909150297009751425816904047627956363754025313289099878381203226537979611715591253605254905691429950562663794381939204750051501245855883816201175166423632614492034731696940996659469255582788149009568411766310863478494021130338406468267579468470709782144184976581064936759044674063556492221757405995974958332959463723016330106956034642370119755404374893294025601709862339586857417469904720897559004356829424369129270251721602820523371790796866700245121798121044562324612326260364145266830493752629061010018396719003323924318837485557333960815726023468510379529188549195808164576314976118351038804810364124762748468331841795205157853480979236197503674210098306216955709227039507658549328242271429006288693164026146208018386401998637535210296663045467045304170566606072600777636520480207068441420331142613397203930581094520008454737149174667152846251266054206336865394196970549510428623824738425813103662245394188581444309757188947788723292477708924720210256888822514035918004151248607738413020110672150450618272749794458338561239724842675147907516022959437417664987758663387373272271176661383535565722953945653227599855424786105094769452850804358887287022783549305488890952638818912384764101515793395897314549888582698981495011043119470700483293413779205146243897579952522290587752330900743437011840582788035662289649977195963224337503639685957106717162540982415537260835752030446946960314340541546953049848858772197764921573107918353900490150083151271766037439822168489848736572415712734978509830669713194535297137774900837193147450243955095238421896052886603446085396685184714184236533637722076925519623784233148354014213023421561653413312482330101574114688758374809403948686389642507215406813902442533458325119563821409408297011961786619573298116915991874602550389085570719462836157519394205005758918239447021973897754623615802932271560326716618755331662056816899489535160762746719777979688759155424281772084642351898773346609700200535625199896543819149760395470387137161375570533283268270474949758967572996050162210815806690902753548645344212108934658816053727209817140189716708048613298823158461481064747791469787371022557583101677440584108269702247790394786489154088223895365024883739940621810393649970958627012716871227309915956856049736974286830087569999989881970624551514739184816751061753565634923876396859123705063112345578936538957127407618085991605925998755302386703806126531162212043812914451038267327200626770679144882154552463356981133596824346166802855548056202580562284016709330093559045807705664965691240094371897614237014705456759478116704340824463430197001820736122860451416620554744886084466999194128957928293819508241681864185365149098969649822708995344275901353400840115274169442697549539747075929785041829674590223194751784273813372276327317481703703955461044808916951604026139502493973256507780479524129752087862381833543104092217601491888128943629621098914204408051756164512538002858336590917520736055929895299091259054063532631251060421068619675738515447828840318443118739647662183569752360327267456991065043159085364530815526199025069288055479355745196906479735948019230024576339081311792938499939615999172057649730814795148709353644716947238418018368083062767931895267768998336359244732960802280284574990488103348822654998406338747531675428708021918716868839034190184298331469349528183617719345934187653375377592106772343477346077720165947662518167580871598810868725536701164652826441420072847815855993414331085992462992171893946411849940816165332172462813956175379656679070898719213227292983376515109343022478751650816065801022355785682269371445260735924665327948325996188384014561770267209006453703477858921709626939881732115166903468151831692348444161751190790792486573204402399114195349987123982765072676400718166961889018931426027419837415555857515578765111916791192948960628589054451739535245694821994374694560926429711976813304402805350193134558617385579507452584988228839686145090743448459823346209070421173885519761074387497508706942678585699834344667953381791223269304583085616733052324373537197119321390095829055481860756634944755000825619024836657178369588436507804591622466630643823801824585110093839272064286393241775490573749208073695553485867875083223800600050716393650647440486808285180174077212657551777685922602989871935751643421860014444096589524137646622251410307896599602758955056159333398234573925076742382465544549343006640292050034417117150816965064467263949754757187905349614161416769011078734891392103257890099506914118857417746799396994350480739730441134945869432894635754117048975060532374211340616414200274275473611664725321251264913686980769074567065583674123354731655874625273699162571957178801861272918285118027066166049751374979964957340563200915460889698993967679439660566988775839732875196614156770720915866507155948540627456821077068942654672359672002944762945021219159107313302699402837629418341087161298093012792351713020843337727855811022432482444694573261928154898561399436048781865822484149702177587428233342373945840542719756439458337405296126492575378715059833667741483557306904704413510119266576260145934095457329616025664732980868288170963469967487018128882606141171323207820119734504223841321510946099006783031083050211855996882675078599345671597429161270019514691192303984949470605955662139320784575348722077510107921944306033192191787080384184602771610363278475932315025954932021190705373094475178331258550923067007529344299806247580819143676775432434186867379571394945434604917242746662549587406045394966166612787893458539269862093307213141216140317941676051291911944222376115940412480701073749200509502466430947673301021031915956038197156178093148154399761327880437673569303828878116834878996070622222584268792433046893337067874755831638497153650693717104046376155397424735232384554618024047925935741212528318918524997971816050187367808774536326632422673392604736150090534642536543332432217418254127023620293898594590765344560482602662481899453839257546735096503322439997830188997888327832324721805334362135927890907618412072599336195914631483955955555300625035785522015462065716060205459402497029102768683816341161082706617913337945473597494258730712658846714066879188512165287286823727925408834519711987177681002191670590434961676828762140842806176817790357444205728230652653871713929968851791661458832359562713728867689100897383533692288786048679160059022997466103021097050097366811744505743385065789716166581536561264615385415176947316843155623704711456051713270994398693524872770785946241843595233773599669369494919998340239509024873838165822800284649125146355161078670698102108007724634985139655859734449901577361139641852492512495705592917748185723360440725471556760970128546800660347322501325099438774283220385428056724793027923978788756358894225952284131597236339092714340836500748903896187837796725496633086659389885001243669645436262887529300047786137957726670578065003401745413852526658424378228266427100870221672830695574956634084139083321403186475315155746356953435049663497275537385964870491131942498540070809338374339344952126258881601926854517099086381245890845479104059226978355000390079631834930719724577642943512919744872829104157766874272513042901488680260909679657321012240290951321204509588159713174679379664270632911971731795606103520085163653379233898756572142835411946174887516415589458256460362025044763432975270495327678021851993021917982677057133285602415986208083167917331839238110652136985973361143173855348372421421537759148355481612438862100981079089182158359428214730295857021594904164141480757451639499593277316110681679082474727067797181710666078923770568707631438377776076211234946033073760350804005153570624308799734832567376558078471848358264596568479086437608102716683327918852401297658348130259489100943689517705328493432508573293637251699882416363520657259131477277073223798071740920013104657211432