Surprise! We've been running on hardware provided by BuyVM for a few months and wanted to show them a little appreciation.
Running a paste site comes with unique challenges, ones that aren't always obvious and hard to control. As such, BuyVM offered us a home where we could worry less about the hosting side of things and focus on maintaining a clean and useful service! Go check them out and show them some love!
Submitted on March 21, 2025 at 04:48 PM
Expires on March 21, 2026 at 04:48 PM (11 months from now)

miku (Text)

1
26154191207404805342121963851188906129532869513388946399967114725074307596965200948208426851831554236225251031464538436558660249571183730999918971423431956775180942965574427695241508760577080134495193025418467367427723777979530244188592992397696770349961923295265574910806705484066787535219181122329217739926017204938733832519879767927805700110866163334089984617864232066863480654406240836771013349499903788971496707604272029265622174234313635007113997379964633324480794239133555836644994398502212665415542027684215649418350414654936838569930525799384110702821786471278147112395585592957053757868411609045807951806305865890078890076666108746105500734245415150820106938801988362038720712571384152601830594369288196637864548581847841752333972230140429348150491785358168070366201646542863084538804729468261315290072273377394005084313501062749393414697219398825393065883778957680994438625108499875645254122314269070513737216132863279458746138458021341409102997955048829337767427772036893069966598544626731689377835837762222097449852299325539707156888045617444820472271704887396177591702864505217214828184256973780776273273901508902643032417024686595694290470947897710965778400107792840071548839508802993687446071332052844625629582361615499512997757051725446936804040697989209873254088140252901803459504054652669910481932557644612250475675693101973943651953034177882427974421289780158557561137343995815516865948389711938037091389170094959387195112118093665418734804931867575413266866103089601384480078806348727683742446105487647637513205315911662297905890396997496064687172168080454880468584470351865117587683561889762909315413960470422502956053442809817245442447772411863665682363776262945775628521508757419479288472520652567796175604696820096005321159558648491122863039065108315220950447571995279935617318855710465312051705398407445840270657730980234913794255925912873055754419046076675447947777838513350772050959725497516388240378295021638663428081976416720621374319640927028537016673536787322490469545775244857834886338093994354761707176195765999271711116673798582821811593089008506828627808334834293953604876438140660338790064319921323573021263474834548964012155041343913305167940706559199207372018660467455370259795807063194337026156663069173732845087995202109459633611122746371831695549383477160117296436617965633319878320145805382739341477452246021106418089956086074080107853059281964858436524993446706577363693015766097038641285097606739601870044519110500009217260253003968736292175527776797314551587899747755602923568292561546940468893095940722206349706422220360654252624861586764740585795501847386105254144774585506756852696439437435970312704876110595830162323336669174117396259899924880014199763152265234366447671351492879940914158656674955343460349758860149454902130169690486002873216677509319788062368806008693219603143706476444841850080695595557901739106693102533882911452101179711252311770277755237368444587647718245277261554185847922902060459974381339875595689428819843010455465855863982447903745098376170020255964816397988870477658965549760775375325325729964519025954981291311222934129391580416706164915598973861109503409142297418723126220783891560055755706219514699596060672912187930973226503867290709467171984015878864415783987059375848296202566311723155260794487689086353212305547125479096459331738355868683068524752664160542917234118982385114339968807852612449965805211803771939036660421488950273074554815326043107346772537468395027363578635510882135061681143620597575255486390842982986263914480789853101436520302745985921514988069058717537424479579757862274961352740642296077121311634338777169977683308698949748516969498446440186064605930762998324148713925352656855417044553374476280614490124549092804254031119488902210637398323016741171776811161236558760950286853921058882710046161514991727850921519354745307504586142761824628456277850064463784122542791170218127774047720270266785805839630385983378542022312953534031903139562070096500729049361816538406977824054447057408098407837285812899494269032395864271691764308769357389230321376070368140866055973284384170615950661684295121678120421053049442314599830043778139817300213171741187529282728453426208058502366754089919260713223827307157940832989673737396348840165538896342394720728586872537613254570165361101179960698767853012421088266516549329696397036430289503988961634908096349629077510580199003226493730106187875899446729184083095478881387384835472442820856047906084009208482431675310044164079397808702981063204915406753567264997744744406338875122346404042877627892832839213179322976512269357841446630961050493088632436403635578439387612447837061121675498407064810999129211452598999664569779454018000060537357075877441417941002860056614850992766630484424495577943331992365036125013278093409645652372817981698106390659808963435453662572885252857609605783363762479925852348698688565276629959932326269790186109780177288706957490302840760904677588621453679636912797874969593202717599049124126422320460858729373416394259109262905149509292784852229000933026869806168926519254236489372464208170979400184189726333761183883603001430831751834059220415795327287334596648364606716252964394880370180910900107877163608652255503579270651699098952960743590180089042448914809927961225996546601970953389293838670783815430354194453411219989729785851065298118913236597450915227381501327448462604311588970717858010723690168249335623746902938130578249296131939881963024904180747055332969215345537317213099397705655228563605544874484221528640501709115610386301920050791020855122159899951911555838927367717465263477522642696074847225454084176817678616347581392966521394666100426826022912006147633628935504015344397698348814258466033363208490747140929557614410707372418159882452528266912383579561441571861796356135535726552705325272955938616287207228303258062215545127642380920354940788448874693819472324419193982431019907241829828688548427706332368869730689586093454585841553707210512871470002064373421778174372130664777812516897915589054735996985397687375561431649578886445388881432561132250146813262459858187633619471431750610963810482831679907938641342428383560848173400769745368463800185862540636702043108417287845360007765586863690176376887761559575461455003554433005788025557792863188689909358396522283193149887304598113139388130130167602048111279131037825890876425102079102567869188778132174324747688911411612792881527528929043576953599537957289599222986083975186894143698189840094503999851640591493058858264702171642748868101255259055730430494971215064438179243593520210668727319484009773429544213327950693709579172448413273466906961616399305590208266002052405848247105620835094641175876777047947775879941683610169096705231828399181850573304689173428710359083898189097350782173035313935737281625818779456743079335858594680140603789167632358203770019091533084040353388102873432091107905251391742430519352707203603829577391850704501864426215972755309739638100294763909471742564813508324984442353609898656218988933553828344502610156087989207453442685601232884247524045201969773348696244281697843625162318960377691130543470654879462185460584456573538070925838477011218759394806981160591657995767722905347661538107056621532689864566795536251853707694610644784315933624485899123632141668909997894382418469046359323277116342331831017113221945645916174555034961395999919820011537650015037552385898745144412276125280233430145015674959517167119232974293803897709465386190164735101260835862239456983300860599488429638786488718676005466418052749178842111385499426963904267008592017124786305063271333740677065107638082862571499149015965430690207738258920383775470947852794769981516055382749562325399084943285366994880795749067674522403247246852976823137023119924970152926571671451631274642314867712167100816504732729146177276253883017157612536117164722028165306120458680599478259933405404718515728286603529401139774616136193737296417208763286738002767578604474817313978209328236344273829265896167019504047600224981177100584828589357508835414568625311345604418592202011029469659085872305685750595810480984286195431912867400512410369671455639823530304835915004802585300280656685358511192118752515819128239803131574568277239397107323005298690081433045350367397532812659543836429846748521239414411047713111201690649441942369842903396677236706494339529070459807006571334805886989697533245548473696313160271417471294249827594297967068634765093373381585372067559133453506347276108163926360006002580118464078119549556405628291992280172127092152227356241775882485497903342785868171192780345165800123667778818660126243320380430820163255793329574124421435085388451377231644688378522957911829688909197999630136703716971652324716955908066443569729770083670992140672120804857042998864778069764027031309995265326065838202863155446224783577273121429592251655334326147580287115495730157858945735616677391593220314526786148175841154194573043757823832169494213751733644663349630491162220072069217101732027246285254069798097140930989594419708922520747455546276062868562295495353259002665571463281775007028104528148685651631328501076319591829940680651156355831659656055008464451554925646119726106950381741230139413738136747797396287504960259124721458203176512885362892010172033333244391960694884150811307371675108916481603119706746034247675694403932612258749780432969825193576021052444541477991353008696686256527744111682600850383051881424780074728293411136829807237043026963296981437468147433952981883801277269684034158353211183892464160210541125958953660312489455477167557624250580366378089905241843713761703061547313179476445430884306286693898841557911507174590928814011679395325600926257761992622262805133051985824903561325029552660609655151804358449249390603748322601128148176292557353649384074564219363306130980183797336317588779002429922496819208431625077228683138200935835324727967603393863741191273847586231670256687583680497523817987485626983054630753774703818675182179446770228852020799429761715742736626188735832681666540529051479852567208498110663784305454096293468020430406985096980859426938823538966380122036300140553812348883119215138119288958035866051689160527757720473162520525739346206971209389488665990005967801329034248978263748502262941149173424627393922025997019092521906687757733045402808142468788328512934071644662948401015854154563121585192245425522666566608523087254191876964087531643111830278686295721821764040655531600515695688267173581904230931249410052377741896922053796734644574986386461323798962350092806539802359200735630809932585257826514549856772974280039051687373128999608682212686418465216938949964435228895377886697000153960534429143591711865129747303877185157585638445394215814986559647466670098768136783496962509019596492520007752621675105559731084591464186395869889703720604228349006806866985195842034308359855225609403139264360948946496736168296783538143119550768121153364379002655451582846477122174682476621695329966577229086951080815611992164880152121393348780114158912378449208222841476656447399855278843455337636858565889965704604804084340832722181648776353181247164731600950278159753861172319032468034833079180677829918987811551947672593676500048464756002219813676634719776489376333932180167303059791831879758233177234955736153412493776262298248638589927500774953470782762846966374087264516676990916649529469035861243984109226778994069496859481313059784195687988626642080988231324298136404249309796312330802618805041583098872728737474519238800969227589283934838560021116914549244985173102928587756137372273310658685385418038273823071969547400314208371730909486500057344199090750969206150133608015124468811798791144367823914993226654188208903373609252374373028465026377665851952963353167733202500922194235935875084557620032556495441082551638141435919664224190494431703101459243087191172397564193955061918473187048437818318801492651292661881791374797044620538855313641252420645342877772816177613627850317977543101142705655643699869695860239799919511268649927954971811053885741271937689829848566158113159020500607977791824374713894196231666614144098925854489461236742883710615685744023119852789015200778002191122433667686784190650031536041825839139503599597882141914474202450678006918347838157087393765807991852134087621598953397100567354058764755330989908153115596287829253273523814437715236425356248708734627761009578084446721038896462011034760952872379986531544836793557043034346405058044613359023988372037267269461863726622561538705348159798329491877128796886922019055162030090538289753044591119688937483100043005257078667706914001953346879489979843994014296868150005622388807460471979086362959764692654550898651498927467119577571170910066682403457203293844810158194738886664292188591826955115747257968203804053611503653908082158143214295594393214123315354653729201402676406279821007514174194272971826445353105904438406605503554331523743794030855727834367193211248142647559610429186995926814404919177795354744336667592469127217101097580979660764335349563540485676173816884948554281782365201523426843794982420122976228286497621388533377582960697432204241452775433388831565875902031197304823582863708051235215717162243047881834410917030427426633656194546491456041737052490926384888044332134326392418671395320859049611166241872321930143811617006159511937354882624111537169110540106091967989661176861005824993853896307388018734162026217713376345122772367914199946422082636794626383206294330034202747210382066113255574339720152828249700765929541970960863876411845908659854674687632626766405660674797917398942724047216468492944521455154553106963859134886936165031595969843713369565121291071674763507501521160275440902720059760868503289879378266719901282948212076894563477857435534189951846159075927571657939806978200029217306821784262992255087093083995391359966449130497763868641708361926758268371616583768704668812963934447109333480617217989215945997984137338786906731314454996291590356096376071904723201565951042702272576098546709411087120637574676731602300041159059371004447905224016632199257789280059853915137576410491164051390699664797912399590320570738001730926554620253008969899978171911915320068994541857642623309492731841758370476570304207591052706241978585502771579435865332063762867736677468972611581505036746634214127999047408135155383735283970948618448113359671877627733709595678991243335303233990811533681638349601835662934029584044249050857570656748229684806716124983435334458150553789763342944741199962649554946258945277832517620952035422484876363698999988088635494395851969390213846937482796115777341897785808595683265016181423967034821236169125442746628919803001340781609688047119431490182250896750980673215101837919330502976840961791824703870290693817432560157656226864111301313657340593629064898943592821775375047533142965873088668501026489839514974286836762077912784849458090602351253455443051199998948817707554653385725764464047042707932075181589399443555296770999882656234882950306888111472513476686605893859336317171432523543565008396856190719986729493179059198492318195331665458415938869370762934732408362694274541285357947097109842146382745775954609755235079158562269186462952939869337373825799324525381711254771126883513152121508730965124915217286132572649839217633586201744139313921029236666309676785024390004564939810852541637543442239331920663815622723285610347971216615664222097347361904782741491867671970079741480917328226369091244571541156671222464503457880475615052988106340746539523358353287906382039698643496852660294504635856722306964539920586150288903194798983661848969255126167104226264335378902119677996714275838159489937633517053840822030573687163472250885677289489217025044453429221025023628234710708768888922615234526125251247325003611824775956049606335475849662631292139151652902903363883240404412289984190646722886586541119896238335188200755421414807436373626864689990435125141853879873607469648896137285926088724127292745408605279471058830458244460379515449735118849528620133001230487460115978532433370219896771267547575477458750247911208642322716747759491263511226411074116956210641425051859767053348266295733096774770409967170473066305471052652519613872867026545664344300252396805474034524704116739485289342790995419819046178900734523994049004090074248317234082889722238228526358379331157351185404810792418524570038081249239891030410464550750372894739482706773706867798349396979927461324173509473414079854182774288949204441260320859911781877216761233969457831335317496755562806122545781061098708140047061614658372806729783825713739585597863113567628792539393110685541187593549903319744004779864586392625620151715845875141299389773665441822384101645732757687715400249317976154880831595157075879502841714879653913707969836547711684784187024451564029852650346264722991786571961164338644479894033017790213566604202542870553430352405670234363706803191840638936340279934325789101120395679252233603740158963356506827581816932415618820658017488710927588440191099995910521486897928146884359485696680764358290975652225124419662359390426725788429579215973247808318822982669831854235769793845414951996742858044089904298219942988397467226789014641717317089492861376072399326921295148085121196194421585739542801546766199260445369751870041161287737781765720361456698193677044434310735260457813100578237641127707679858271783968723243190936975606413929695514364476476434053430771761195230451313785237842193322704309409534957809444646811939328830807661888750265799550898386724156184152044023367817749592645705163929660099102797765589370625267565145158846453269696469166093070781972582137146097898147589566910393930701163616264367861414692161113974744067905991481565251714379269594551862576337992164935979408246654575922835264457208347053922536916806132110115825341436237240591461947616776117561999666492391667951115874841278931619820227366163168445146720853514836911671585162456511417790747853117312287006326889927951761941797080027880951167874803280457586575433424709778481157707799267228409490972418147196202682934788808977526114965846603239484817690372731450770293290789262071182032897898533392065923926615680495491375176832876548952098999891345317837836670115523081857515975277810135603022597597778564029910271355679329595972894770180485628029127974504931177015725231200908165914771316262499052385444687764539604015806942435156081786678928586893729664311568110102573953825294367711774893797793284888671933626594040041681614391202345751478051445792582899135679681779734662151520777262433751114477412255133018606067475273084134506702609167788595895532546685485744798238757670200893524302397152738793436099584586837086121204795240101287961702094149015319660942967104021526723770437117186788178594693368938664006091300933772356550150693118800483251748143036449683129966945356655043387699498738430694674645816029855678890009241621275773136184457174853944457122207680368301009172391503755638619377223904365426520471029485702018313037223802228109266792409531702484846344637855859407716683945959751470773668063693023047893876772091082594586541102238560217499013865547303047349235535898587669350873948751088430430646064167660620078609452337547409264633340986742098724872697806376037072631980126386024193704716743021082716435022539100504279824706104531583745498526842362420165631960196442399683953708612655095743946962797595434840488201471768120109049961670441129193187064183830239505361499926383575295237358692704668596862048997261113313228542398530784193529720691402158729045842389405026091572030417510595602782111628178747935229242413879257645615463207244195408180897894831219141829430168101398189303247664953887790876515941230575814709077308017019781166222451206875641894912108634991576105582460266889034524698478824291517702045151804429428234832915757049814507539489810688041140421189454107670156285257134023755256249149924466026697103820104185446840273589575777886814516424583761315264586139776017132945335477367005661740312769572097783136655233749988590412689288203800842033334561307986753829467021233963616008070525446188353839642943591902421578836903706617088167306934860315995254356684937442005288145863414604341662348236221780269054425675078401017753464190702685301939147810998894348630329925636429247124019105007181855924290665200998353178499397380242393513231873194334359806672047004597534875368126706180933406774558758821146867791623209249583051946728630178159939344418027075202419668721638733431078371883176267585411064727446020098412919740332725080742510112515930790977769814277229547175985794448212655404959140943069147457129071865795051110196199744469633310698237446179462940550315322433828177256607368647732088649634836836835702953786610733780888849532083867547549759022182960513181169014743728168720140736062307704619952109721050026973714053056988973040962405813845761746988692518493914617506433857445825749731451832199028592963068408060771580291726606737274190066164567707469428573846125081696570036452297254738951056396254454790617835582315228652191934840066743530524686697871367825988729054271075205798905352101302960821404648500503553041332006750410524173505034090524337388119523606027681601527161336551655847795645098484204292515446751383769239610483683390667163791140194285294487912773021154646282277302331097854877373795433505088799886210420921524710001190864106513682150360463809606996044080737109846974110322753616004732101740710087714467743584430086517549953289897042007579488514957528096485718123225617388509569293293948897898240590208904761293168189469886492640153743808284089652922090735069509855301897966387997482651324759055890485760676417504167208524618869580144140736806291651940492408887864280931223227045312891874009252228306040369378622177707942182391027622531968751898338844340605919332005949041801328361628408086364214483011870462446661771451481940986773256282040835088708708972112511533173633676184846985926227711484059740975520056982464969951740227336155432827866002864803396118436833873525964687861826877489886340782115253651540371459874015157405949857051747484080637983565765556166244499404930793733250007800359792940006793656660755243638222290756820797406726915826624112208302292839008474298198885937891859529275055467011782439425285110369149600201328167468517600079678805951808513263018645445183084394759022224110803059775842970657008347131600267495222108742607668346360601239930963324513695012026183879509965930285214078680083914575129881051412899130069147195542042773517500229762077060077444304928607116256739051187642882079292301941915810694165237150665627001454247852782013378127802694384613695331493772480837371767251529250795916754260138627416915734909469950879150614604916192344450878654530666459169952394471346019547764771963773184172140202985466840919146799418945703376964128887619688513859857265135501358484685869478193924756911444239851921949708824246854555596550015275062818587946257998534451479643657427550168242378858062813110399183603178758513279220004207314150360052108539716942167960318654672268573204444432458360130186781093282426446796741215327511345561264537025161928021444104150941056401991608021005913723428518587225366912872581134292994161181321865231202012632001079598682836611905657981814632780420350825849694941897916235234947909964638314252238025565973467702121661175879640152933557558692306659802725579673322748902453088080052766322751343781269831403039373197243541138329575111714381073095366405780720177520900437143194394845211134755758985313146365167459443104663708333578655964636568354745285712773088041837777837720119209029365144071289355534756673839979281536261476485329427035386303760852021417803343233005434764368030628381488921001373387619321012081927941249074527674210924757793268654257690833671894912883361499608297571172300511647250482900180709030728797540712784875123852394916724517705569201179506740684975718398598334191520903614756268043812051413932857308289647480802961271617179877827446055814835015165925026303187245928135802963051930822900812822370916106364633035447140852094570789819205426093417694928920384143172803768376318223033255504847817265327617480369337207889103919582447035528143102955752888995190060544253560485852139764922512203815982923209353758216697226203434506475040225082605451622870539140914990218696164550661137124418303006209683715022396612261094306036742126716273481805883972641650796328341429158413614678117171134395551920989899326022940779527461686209062241220042152130714459198751480904749508273447009013356804673682126362424058314139012755594853547381745146657856801704512225024406119067492556246837749489176736696858791814924111650900136274802402839283455187567246362667512095261139586087465113125824964031837093677262429261746839362164284167368370571988408986376654109534677136493546343857517127160685398856776559356992283948591676622912129267275650505736521521099047763261015832181096546032556436238313308932819018273360915903081892528243744047986945546805189883322035533942591413300954754206192411001494901227609089996028827412227134077763034036068862285623305306537737474509448984920206841014064333834053271346259483357274603664951125699641918477999456720400748488394058208465822055371875868627907803653291613152051833724199988941367384301537119758311006033469279276655697248913901536641240269961341170074303594468222988564446464285828311429580479995710697005253496126814869021842571692817794053397717577244706210304237089916929043187234311510681936119984574278703439298782420922931697349389763313707542703925626612555566867420849054283081049865399252327440660106796559197692396862283388933361467481961054929699507151757613746817892189238711559032395288293929428527996138663283737693825144258854977182076105361619325473773837841366609680670107733772078434059677939189637513339511103740642014774235581401583354681984647525764866236332597669443076695889776670771986620097268488430264158943936366232443495265537892457606408526997252061383976926500192212113303878442180656562593016600547052714858789402476128422577003151282162546938825838919634652033719266505963483907945313284659146875712382057612182343038524606334537447699346948745366952306032446864769416321780112338346604833418128533615364810277746421373426390433400696139471643404214103017611173124878155572402154245053892091337953609474510331576461772680735179489963619736426507884376816644014446152968969984721439927430568907258880671983909960674611085721501323851884092919039005242393095069068155234175151232902997320097940607810136038382118508890154057065264092783460558023777171960166730427026174256321906405772682012468861577839466268937703765056443310435752017188798339784522791798543082923609987426579179628529884184675433801408467720220535742955951684800816618222308089003359855071322361971743744752491597381784857584058248953593933230123450838357412186374975987328111940102125012013916488942950306694605514540604176460447762794829060751329802170162850462272589184270558272228860241069118384657564764263690753893559271709389902072573226608916155397679370155265460529315657080159655584576639482961565103123712540297889688013513863861568249361779679277622489800329914239747844730254925255981384959897355180226068531904468737473809264140906767121778847649065912192547796472033640861016976664608559658219832107349716599183416558215571885599585723172508970140212267064838282441195261199878033110838451682441375880120979948276004239568804879260743916309662243142518726110427538885247065657145738579406505877652361413776361613224846182096823504171457180799654305019468708205393939952315580409649162810948552395155004569821337861164731164528484298513081608687970524233854709578424728632382416104220187398851620585131394877539355722550703434355237169594321299582374264544533755336700881459049775306413399420999444433089576748156010359554791903141051585820318746985126958200105371921359394859770269950657338363232958627840800051511528699632557197821055762441418678882811200481470031327331286618422700084487358439296632130910163844744703224825363117273638288038821639590704778151019002234119098487131810956959185942560964029189514643199674697784710511021127920035233049292756379258172537980628659536145743925077729705817187643523758834727313259823526442095361712265617460998227439766074108178942920523433573000090467003627795858589336633800045170737428294627687034898470680437125521041726271459761234691123131830119022446308663860858893068306316061443866440619464623168053185894788862774439439472627510535341070981531165109433550450996338035488089799386832448452582056571663438702745446300399994232139416566865259313986907634626605663383998969066224156480250878929497155829753736655526235674283887607668040423702937701375309121351951866103527624341607373136076488643326135478512325090638265340222347519529396960132949682595889796596136772017865875340633241855641944221352121505830164192021853337551854102255773584487998486365790805151292185239684650503153674626388367730820356648173316440540752609882047065068276959281650800709907890132327055456354610879588750523657235806110407335521266677881115641585916166597112315927649913658355851292462622143245749730222976630023480667110141238686964422621402967137913216966624521267407244123174084298505687337035062479286074347332316648205574916914658081800244669223035593432916422799638216238488068075444260959713206607068369901130076883393766473405353532996518848114028923267191177616638248139665178900198362430934619539997424722406437147501434964280028657153709707916152207461671144230056227734707820586713603159144910170815002761947649605839667125690486878855970558484627966784788141395146084826421463039692409909747420343351829441912306230595910798020245549355478423099398588784558624096743283316950394270661986937163258931247839587565472981159852651263710742593492981958584570380368391883072040783921811397330865762033557566875715824145058129747850409346791922017277228358057479357860180244897614627038367189965991034243514443478992549416909610073149294077410882996669877267602741765057633208648782723240675141580558615277191475224529495051443155225417314549248458041839097421518033883214687203110420803625520295332985960917745907946571443210310741099849353679731067496737123040939124630746492993602565332816074779912594633766432311320502109162784075147792830132298053630141705320639956095056908504214556506628853395454831820062079052060514124712230341856216187410775973859886811037554479412068574283790633193119760040375332731828403317223481989625700684681603687942791023812557830710091674965559905203521312274599158417839973133493470533064004382036251070238446332273896530442461485409436912741544550337027624105352062375611239118207305547727986896712053576976750032983355889534411446075993793148891469994293831999092080237727880821675186482958670721627096157979407537965523871240521257323891878928945650463138795847143629566076884585884624293300285494290472686112120064839281962961284502202633847606773184523587289156490951577676379474707005992060909666602140589860771495529188640767923500108112008149806828574502774326287835905127385022975022072193994757838614623200345982849024951291504024072944887196447350325783044858653249382998130258332781844203413419181274033085427864089630206732543926232740598444624609602356264829207031675347270568892355198542294922990892963818883465097133751801226229489399318632452755286711337745698420714939445025957031144523327744972873698790820254194701345343461183966678464075438968947864675877771845661691210139827288654079118578638420517222356939571573019689770295816152184662243307408193099426471534144593807683740374709528161093643037298181323492012218444980368875865472742548265175288427448497009977638095807972881805257571580610624134728370984631326495231971029800471600720399722241339942541372043570755442958974412874982664978366305876240647742117033522022415443919381185314789980805658518503101057865348260657942042628624024340679385444861601897803823060688866345074800669089268317026736633884646459910981599129019385122701518029833518390503962582610786408319362080336770893704980859836716380713416027257640833887790544213138029947670159585965431233854423500092682369504699230966961402057555622332592383302757653508581593655907259770632158703703348136637534428585077985029051620288409698170014885722017703692976818090650799345057902180519115791698504368860087996731087108329187293199055323341869573978619794622689642435213873771443765652011745579389833278154782950950723089593419489416286594573582606109840547121349595723764393234350852769073840756029967015453345314166867552299012139524697036535359250635200739682750950115362017656081520066526782014657407363326602395283233347986049731596787071522825020911617042267151182285398202844735102726011595323505526301258168928187821408093237934818065091932915577172601224059968519474237853545276269220744642734573409062216786190236647050114240587723180576227662889962285571057558032895794202374745697367118210416275979454620551508992154250009611214834473337321650902065230180288146714510465220307022973739797042749167278091893219195850929499881029802421160087436769487456823059033440232347685309532763356058899216260679881277422801654785685291151374573956701464634039248486642963067462239238380892758934498699442923645479765027418893872939524300323187096490498385686819442636233621262448240375179476455828544324374221807708456194649472697246675978864836916858063160089430405624932339755052784393818658205926714700917633000926091048487250406176414230048185235298036345894164382996341386036153966923999157819008558021959992038884481046190291219213728625348996862349277457636998540077150467489115300685240800634288958124029793688588535617143492482516993764418776368982518534682718094643329171324380445848545526245033216107291478067398909840508610302176160855505568501686860507263846199947111749160510858460641921645520431638061438773955836151126873860611809789005001141966527985913652371523279577429863297161355786266198716062439834670057719046356260922562624257581140123157014175575873675394984640604837847264488072815561920259205401274569635592626251986195913313110328741930534087986104942518264928593042130185065335401323186592848891237001501692555286670908940499358970932540309550980080919221393214675064181854364253265017351555673597072656651500038885760640267266845532949548164835442832526835160212970871182154673780665381964966767474222782252571408628130581504972353283947494137056888490030027571350100148041806415026527171007308127384263071026768426050349328768049948120594455194466628605088533266336865957896765466000768240966832841258173450143710141967506691417961593493856707442579151764312510146535173657621073002717486568640040448968466387405341627116809861132515667858923070540628134645655575170686519762934088180306981692028348198595018698693383514458277617022951644230373428679852094044409514179638646385630816861678042779798821387945632160539031380666743347689758282876405565826120553072676425856589534103393409396655749994289014822827332840624279471644400574469897748364722191746384524609702033306616019024401589041989043574083158037472060332296999437092419185060612308040699878448648437099833552802930084390839191689939299895774364892313280209968549154895772847028167583113508621239783685113570523847942637783101089490009034237158399113383200134686809333048774058783823564038268596662537460201800689959855505570802552348794820647301342467440583406340820567409541513848943110256847147851289682633925142115507640366664769958738898837947401392387342044972746971358423860140776572198396334182503103684574125237485750657440705990447997210269713057357183028710086750125754591842432124247675719057683125986179143844689995695701801547125489556773388217543734990881910244061582501046893587477962450083014974232624217104271839960012826679589257558314164411451136480419996521656496791229181628406969357233078295843663014392214127335298488056361773229960726799159620382923355413218728799464320329378599504378134435524487180114970258870414256605125112174919275603074693622006375247264480743861024145924255771020507505282592578743748583773222785282346355616114414704570347247167931271214899377755232936752381834887440385642071209169900785521783867165086217992460912415671658605825792339107470555941955282571042912584258183582485251808310354766719142865939965408085398377228847894750744034195565091027353326456652074805690338639473740367219058369217329460481532110779173696579264276182491851479931748271519574931892146827496928649402949377202111599601796463973185504361608367276665789851495154254129466206447302129434368443396417881658344390540343462792077274853794693827250837265580214907975268348720393855252048272360392740137663731987679849386574125473274885412277366921283355832254744870563064620884090556327746191626521978653979024922966334696846077206495574698980241898103074420188235440694574255414398138835864515289532894210145070169873226011143230963379227648467826742639091257410215427097940918463127226351433649716743499426176550160629034114957973659381497534733045358780822779247128818592586694761960726456156849007626044482992285187118826480068749392757524289171011092805386943194986218117745696736798454915292397966184717244164618528259467368290285820784726432373983212608657433205518100201424032354174164012216947606496893505534178332418740975626366046718327558150581136476485213383902782188730940686528012055589849942562329943724068676466365494677075665639962086319235559143221419822660476703360253615245929357592114055557164660487251191846941605424771037133345030583046254431029150272172346479320381542207706653947160549477875841956259488374584608770926576524398051145093145729830608357266188981321549596800472210091676939423242202921938199360319934051002014996191380293928834234391152153357664153527845465692018854687619893417775488841365867528475355410315492483022010430496103610154653589220161655097311319333280953975506439148948535790508386413834153067293852454255429278603406354355844894779575194173850230555428026577980390925077662660258774115867216928407293703612200879585790367690695668666618275384917091248648725468965749665558712820959637008154638230533461268493667217406845262905133913442403632451636420086829645323273287595711994798686093911888745321351861425761153752606365520567736652883081496697000439824021465109279860645972361874406780525896799811403395735107357166960033205271778438395541513426358976871253646800164918673981317168545258259690045208599115189917917057192109182516447096210049834614003254657610787258186863321759908995494797480893287396927670461185615156154271346258787202127818271246650342755466018309357925307201277898359381983034686809618037329638600340001512720956280399232777127210093472389276278449412977388993496697728053031451319697545453836569613236149391704675969742617050523113859668124081868072520929615330555093571540384725993422609751020060800188233150279098892269095910380013484688438107872374285234347401299048785258207097290222785620175146765047453359529744696141451696625603963610185633439102250903615702800164536945272989809486224658276165020259724856085641242254091976079487526541342817456033103990929322213626298124005989573513864970991540128014314877434702862162724950693717774618327714668521815507626859953077961044497899304022507644940927281834835226350297761124606153182862154864123157602623314221720336782826481068693465527086032102581688419348463385366841934773506567996893915982168046230407747566678868026185590328143852669089607128439142049356375138206286121000040375686961961426240082535472710929242166011468013635770163336338396173117460525385584682235885104472410568326227164065799847854724629440164750531908354085845954016516639684993801938534938245612030990006583710988997147818542211351760450333986872143593502346731268727338596584828356070524872856016074580894425538720374451880918149763269940573117555220968812805376515645059839048506138267176461585001293553961849797135299602322858021675886730797851132214706339283265057655254389961097804845908140417620162778948981493834833127556793094497676713602513692630038405929730526394662702797140627757856260574152067269355858055319796909793490164138122914137200802616887359299490219523425062480531964435010322564492970969784352461899118482039628272389425305825938720656137368138872602436260106734182502150071805325493323983549007977756594169565890203574553355875206656900283570205173242596354741453634794842758760113642443929031961608533212889030157790455629814495339179496319847239917796981224871482582896802595412404948343534366160348029106721337382846443874352276196704735156741118676807134965556799661069311686313939015171174622989003800950854200626326145374153069691341348447113406890210245139942466947568817833736619618878923378413629150334468073666474794931310910747826423790666019964699227195511015783633746146853750158416254310254858979314467443763753347090442799938069945609889873036637766506081657113478815571603152400170999095820826834456587353927150062352244901553024856828122696582872102001543499444602257195270432316185829443849305782967642140640393735571099629008495938464747701405241205037392977763666065924255862628430790037335312181693601805638880958619355892301619143351838151254283721392819018579018475832047362759096616754331840338057155516839742908529152759144416648279440307449083503815123555334299491325220017588018863643065013607950808955960212741364014698129813557803154325026370194827158783139643634938819738236638036034546324723968809886120474726401509375184000245276840830249051261456007588568827406322526345458995391596363570619733724377729731297191368205898202333633958496611196301951651595104523413961150558485241111908832397541871655873169750190546275469113256592093403793024331345508622091995635599250221788466702367162579564354354555682029606060498316422208731998381940409212248728674010867753480343183313953354889200309604059309870230185946794829579247185521021323234273387673808681871966307906468730007037343044735370245959903920664017477869455103044811314063524145296191133594156217881300148912007712610004074527698093109227938015497740644255003908221353237329921111104059769832018374950747597150818208410597069522006146900890468766946207025149505857343398892504072775763620623121457864488145242074088646550952588323274368305481563524639914167967210487081836812880531408777049764630532495707885526333705810379034026738243699103154901775258158388681425259131836933205145484024859337816178514569741746342715192889104923296703008515809788584223463731987140991818308505124568899051806939332256016905381390928601495769553033061921375388631805482843122317974110612063723564366591266383683334527291927572220407686047968671382187681692059444691540006904716271423560752000307035263771390389420663473305717369147669689125767237996819278368977599989005911741934403412704201577660360820046547154163786336412526538245815587601764721452516493428592519611642434424913970912851386436950999390903612116218504289640070980636045087563281653878532390488990773656244955946102472872499653414993776890329319192303994644745020408286120967534355384164084885297875885193336623160794532759685033248922753383985060665480154560063053663693862592599577936827452806026018422563369542136688702321724473476488651367300927435698474806873839530362906310511607087201755973674474635777352962677536358525050664006545333779224541879316290950138797418900552428548664017505921218090770312766944298422589431175783580705270322659641963402322727562994782112481329348042141469897518079240880742254428967328769156779137116961066524296658105801093331731670953698242084609744948644505458440382302055307530313411621388993930879966930910693019526185078645626031485610617795353039220163765880666926935373312589813903924777702816803192025800952009778258265079172909579688946198175827063837154308362877167907240291448976985587638724513636241285977442827234233029786383398307894053138616037316391623037754145637256465901036638921603551397977915261897107003730215170954292581057462852489970731219868594549990859698049577440775145732583102577418231187756430851454649368996312727624295977772736166664607014637192436878594901469792972524082389441450085795812561679790192011315140609181864943249684424497286390506213379154320509742595423372356214111420945613877265549350153920691949102921012725431009587521220196567028352342675959588207598604974141765930027516357357486792840286829891607563637323467460848208169935215910498113869921133946822829391914405757810002432896659577897672411799528556108534011410470565467714588066557339243802844379772459178715379413978539978512561297679086208013676359938613365895398786678393302700427295304533806511785048111934964764854555667361147637504634139273367225885945039657052740215010094857172692447036135957491714500862489816372197089534689094337029075665538920483882199340402957096648094233002361672099500052431406288828414380340761854966046045947072770296520188957998664838234126261526950562257065304839626334082023987475031228701272911753057644426022224320034277908916802042948864349098892233406243973324697760987019992906161845034223425166805383494944483059821274268660006276564691151369117435927908013652752856411231592357806577132037011500195394806950694124697989237777094004618947148531994924381197590248441099771869215218868534740540205321304665566462418477337283156333016843700067063231759858645447403395982926307560702358369414272423026819975261803264702957092804406822132705164903151582461295237249393205345840085096265702195092465045675998527426884374860784093247683696630866524996809486820974338477280917594619698462334601183049713073832038473237438353213127929313880024134969158096636003706614731356789677658402292746380488538905884294336797010787197826066769596356595076447670738460154982988932326684873058821284104121057838354898061766804443641330198488425353034848104289834940079004226023501082936219925147947479314956138314024733654761186551680660593007900167595117664164162732748752743376423427230984568313839171884643161175211100634307872195028798666206617337759891844010346879363923438538688411423022699870979499348211565285870434520520675086806072399489576634740204862405738950863032589860644690674878135628561136379876899994660855479603844974758692308241568519424536084152416168975731072704352009053678275758397122458680286771051375712786631505367381577361549870126727819494168025181622301202107406825929915455760674388750309359001028425560633724723762409500233311847052848812448491247708978827636248052618846368406600096284917243595012442952087247805568239932348050296370326218694445486893925468983670689944352457532235645168379443530640333019726199272234304266179423910981023942697335267640920724964942658799258958628266537473848248780529930575555275061375570340663422731288834996875501139104845614745771420563162571913586520910807069918868317528830134116738746552938119617081064433187549264149503567167042687099786741882158304821610706623432455754345020398540722890379923293498138860992431663461676271486860226222610410310868371469869170912281281187281420926418364796540110629163206860105945110828629193895568540554097558451028393391919881681315182837119291814663934320585684140207590726579144467697329213632581403978652761020197732945014670483408470342769170516181697599283766234971809182268080347378540748151703523614585069700589590332098116029327666174863766904318742389431571768856546840124638553502502895990245893642815430819539609611595301130704264174447496101136005496540789538549608077493542545287047486985025962378382602374013880795799830810603358678814139166447097848183380632476294857706531436064701708555868672710735511283037055136776993081151253100962381932422571453371541123702212716050037997922305921761451262093199549546081311653625303138242082715168917586997027299145031054082630492465469137721290186993786190989142054458135763319871774457525247870249729802687355249931408923106148502384706718209923987234278378786317129180244707462360264760149487574506081535661133644262456301102724967924706778590784786362952972440946183887308731380646241162187809197752207280397014114397156989391652160285733226622915171620242992345031279140248643088920914858596574787884137109628539393904044890182412620361575045610612749977112955420311705762390188054123709698234949738519062721196044188083872492450425841318141039605520036938543082655763153827505417242936949913477174627008871671481175549257034461816638708257402840321007761734805531952264670665054262135029478019357343405219914791016349778331741701761021143292730790234741546024020330963127380583740681684656716776693770769566499016333553012732820278846704726106883962361938947411850052416215983537595845197925879935629558894366991185452258686483469109789159153358709208835033796864547214551885451729702636463515640536459427726520667032035326859900637723784662181356548538564852791557605784031673012040162285616466860220986215157745622373331915280130093886381339774401992146003488804251706394684274742591312805627329446565787177908393155767931751438689612778479082838153133790587129451064695480198551018203892763680907329273112755061076719360949194551495941798663932397619472640953404921193838008464393171298659124389599775193376752085784828866628597766831971870637939415640294453789779521490779684315596284281219591953665966476623457655937254010181042818577035540654424372029343847619580854942215246763801483262214159957501811304217771315861948906129413088200259922092687031795165640762738305867235514291981428657595102586717368104742625176434301369605468769086964445026428477627412256460518489357877920825761048426211494581323326620965027340774947757924741526845890226134009709750523436982865247469054587590017502485259033499843552077990808338543483334807928514713528157115226209402790053016780159139517636649550678944529493584799443664295064671993279661692851631240103437489488714786327231871441512828914925390529843865023172049117982787854090742455228051236872818298458385162275385514327414109912197884968097231588426549579780499326298531716348769487770621157127231026370469078321665061437736956377597794340872586019685938882080945562449142761798728892257792653908318183997349785808215662191533916378957581344463669006831396676041010501492939998294435009332145569047883440598842411331834797730110972623978496211868836970261787928693854749495860705658648291690630814533661712622615138158850538180523388373168186669037251609933510498002374883513744776231264109520236970392607648865161121158399389230642892431395880618219116893828342442463558979242305197849883667594304807607684989790352940535497484056640980522138404257072362893871836882359752049164889859493138175753012484790348321053206375020055503776617026084106965124937842803006431087042772128994422549546203926100594100976410038413128947203410743707649588201772474379195409928678559443641973203957019568634493137918372138329255963444217207988403465130899159890441256829226291421639821298306367725330333140782222387105967231543254972890739030755701113769715892835553675306099669459759826968577127878533229019649154150648538216792709863041041804535031298150757981078575167220338495900912060259030426442114359016686927353210222615150709340034670868200777592283936940529291391956053958491593384413334878140141982726660618082532891824887295191442481127794567590552227055041998640839520594160150331180509642748709223903985761327679444241351161671643043902458326243029941713082559821741419846933801474294051777326419576747091122701804746867593872996197051893423846420949808931555356655569980668942291797642128003391817810954355762966080921839183957135479729210421319799081563102231821451975808563110704434427535842351609106772369953770237274909417826818583518113197593162902485941292458634229119993222763103084556713705530771209444282975714947555073403633775548091864288562551397611071190347529919250226396652084454264325383722347296231413441335488367554342312128018288502678121625435661416312052771355939911270865704046361615419584259767654741885145102155410047077431816763887120884445552278302884172274305931278915294701469586939529056155555669711707367123391524777176014923595822422414499255184981202801004718380381378072349071919745365938431821338787031742527450974408770438104803652502485072082463173651942413453688216562491431457278531078591271792703074078411490905596957803794222627194838028556464893265813514701514172225561959157809814554083582510225963287058973601616259853540724996964906939945646992688960334196469016201047252565314486631574487023068298577926145929997511621808708991387428718956297528347535492958844635288244352808029788907819975853606292762322999702461326182687542902082000708829452339796316722110882248955727561040839510519390946057514366329793062703064582609241369668597417828535567981580834153944839169622096875961377027149623443854228160379051626180500898297650854580996363956335914668440184671520680181704002569710297829237678013147633057008415406391775398161377958027367165704106674516759669994835797469985904191711811549464974190437315165388394845949301810015416828552821706845323028824039581492425422315617917128858129816652629163533163921791708747568471128632172886715325521686504183839245210829042344651876253805535507028453053774782586627721426390270197281445283976527516048025473575316990388807099506083615800130870983676936358228536390144395196918568944482499822432429704539059761882595473739047166144626701181144191553801624812335980923876227941504779615551494627485564028312397244099130596109604379830322849397315814550425455402538336369038416000046465914076369690031123406905696159325397268766332953817915328387881173240713149938125598163052469944939864037322361627387762076319381108452561151107222746646047987737465331098947527846158214293175610377503558986885123045565053944682480721551284215977952539004956683804815700063747226831494581906223116186726129493157335149654254906157357992584649812789324054180679929800871616854615117837927060313487100418828919448817447546232176166672539341156887110312909737211584067381800660352135005936994529202911497007849337147299382117120777308436127718449807382054257590570288963723589431387089591282956897397475509170970472800577170952559693829977818429043237744324655469105445288214681716301702594245920849331498636128196575725316145475595393803781037745892548494178819027892540669492856602679379302317819754294932762669897107782430367261296193544198130057490024633676864567675717064501043803800618693814693310242728190646124160234391439197409263552173071350988650269740588220166516403698974238572121223513556652689788687847948009715698330685927176807350575154772922840719227080469678402082790368992057900779760569705913569848977754965722125813483424064248820374886047246554157811422207826233611630387475631577605847290415779826637706895921429836499379364621278173763386911233353993815641480603968508045180335797352844684091022915385662605385411757505015832877866235762144811586975570413914063805996767926279717607202941344414931459779648673249754817699235931429045623430712932658513860828371759512860453078968581434997038643361651054828066002630567590789037924252968654901322846016214013417478479280301601501948399693680275803213368667454583808683974775451581006503244412126330056272048594916693370335231917694711965974073743245594747675662511431053394553086079498782489937625652554717279744292571156610146636195530855411121395032616876490442939907833925016942089838953388431155751454826041485728523432534539225515084259080430688160983112080463247456185448043398545801801464844348105894473963495838708906655114583007576844471387325397566712975995908604761275106309660026400936593641940275117062565746707612184057466078127116040490507819254542951708870366707953257909466574540100462521140825736527194806524678010398199116929789045923333479161759840035979758152325037193587129362578770561786907773500060784912244824611330804203585387047715233274751035535582915919344569293999125251295711083172339109262647815648346057101718910197838300789540013712826727883454927033726809563062592932829663586432906949340780098441216081836402458605562729368842433515852943879525687482821560285933283598252564535117102089296438323060124746633357104720516533990403750288833672890973128384555790278500631965693319587407074272269324615760060747233580807479133708257026119070536137099912173398022307745085243193068583068798485988615833702406253326950030229966487534987465753196590085492776449956598405511499731326068977755601851704193949466399845540247164574689912612912094529366262534159932301384633054280151745666171425713241286348121585191858074983091523827457761484430868598243705422830405228171381316354737550381157014962479035386169175678300325061238287501678155199134047394934541112291194445224285986629986730622392176076113799690422751012399482096547289422159284873444246998356064154219919941768436162058566285007132345900310805802057015527624315792110285229103767105353807326615591082455072708881767915617303430670805161455246272165232658718241380533078712031099067025208746961093290634471195059606241657976357758439774687494447749137755176516947413989652025583930602442168387324144550118040710699473158665034589032425782247159346065870465233798983223784043798065788898610017063934126463033405929921501766156361536226171514992954195921694035385714525474144113371901467672605661259441812308781695878186722923712053688046899385909792833945828205217990600357218935341734781012997400827312282572760815979400026757809671631828202207040177157065650905561144823396196931716373211335788667504671194989869135386270965570566513677342558394916551176702115775542420798339957092958463198741015821079320602113394814045642703742500005379308792147458300289786127851714228560675284806126074805236597512996886098663903315787649695009642633267363678818311981423020107552962992940392527658358457800090561795244186366561536863730285400347339519503108630404031277440206325719201885652258555797114170524275572782004910517502286953853812029545166013327731440424915424091398506298427348292603519052952941636643930821619829196277065894162773527121679617387939586027580406360594231352455062266121545500769575814869107224328060908099146790262014116747371177750077785544279550182689377428379384613598620550847394333475888629615630865793662193060109197421999752005216294198330405853489174791207323037132602460198975497855748651311445740843652173552230959813527157379672551257184189369292084832232941121372997292272139827588958178468410748152452827138822120613169334524421157891647787055078203309688850954117043128096397785509266942014846671831853636226689517995979006629501982469127190825135626009745923944352213133605780789472734158755414241195725947773478073346923311984491116832441434345120553320914630765463872943030983292108621791793708266002603922715597957100581498142631685199131783706989450258676085704396863851758959864685422156311059705009539642091183434431291000567189942747303800047327639381569024432725318189911589873569219892955458548584572258697908404400986856716990260943037533582569532407014510491042794307890024919055483592971972300881055851032677661300422024404990566664221233971982564353388005117479502565789728628009264947347307331358183289985117556573068776733298145571052244796399180478218911510056777153167114241144229477683830624012906535002230853156890986337339954534949206159165030605504969183803400830565406294699220992762805710733832685869383819510415334774721432026547246858280470993860416548349768346232436000897607246064907069371150219362396437545135982929016237463994364332309716704695497049979270594857242369599399364422720893117133949683208217873116821389679376159055528942932890144624424169411735739097112456380752272593743214666018923318516475712280084764023500506076439249966739078242580318157363379177186713103811118843315124391631033449421784664015574396563628993459781483028720371349426068824621112335025761929264130278369771994511032141800504283772874566494945802468906180500349005478762499842083549379284092280035809685484262452361303272267310260369289520028935721736840684724438824706950904460454863134191736704282463570805929222849648625256010134317363963774592733939445185719840796122161427016469255627742970999179193933832533609340796318324152478611651144317330692884340115617561575697119117883253051416241005629452670534985859126673699868727499490589966419103045660551838635458563088499633080591602846539622587596253974080227806243646275422161174286829717537125477494756754172660026553133884459403795919655344000915553445880834517454182454210161226981096760174933659421442682787923232612410620766296244723506526400574476780918682448186211191808923998672531856523544204043463588832881360404301038148628672102333814242152501115775016999956310023625298252952212425965505997660518404820581941571135627955700271597101335197484035198543824428924453865965671982985458484222367790068799885705831736837017400105965204579739435452093342891433786244920820538603039884214458931689035478673579204360893620264825718102023449835675786059014461868493070978527834437684898109352010953201839904323128195345970377837923208811464178323903634576225049709825144932886263008034627490237538271024115417540627860635998275464637816778532836406253990074868941194309236441089980287092408639505557332629061668173067754896866629778308781438812431451404194296494248459510167210203857505320847467004184987900646644369520925105233264514875285500490778880153145473653363010889719682653383426895531358958594253118193416776474386700675999778214110825731881388168635164795835518780429210605552726098591788650045679601710679893918269750246819101059017375330893506462799608152002586450039836770034595696998829821024755976098062810229933935697789662684313374553505349215675593835639675907045821132578387855251497625867985393718294940140892166437879122833985281012269796864949682244355860306264890033010486824772852573180356566562585096081596365320445035257886889957495878343515691008425998937541726698384828983653084928274897471282333282739921524929944052551124461851611609952540650813685187612435822834439964238357689378061689151756556244592397740061520504134965026096922148967637717228629153460056694373367645117412199548156247587026013416435066032675951487803662001315095790441779471132632887832084143881717376806150670151367087738348462810050731214602684282221090182969174331755278467127108497509465787842367026116160763607601392346186418021663925867370988680801636095321378381056710384456176503080420663390631014538074459137363876032369304661659344442004977757565255017830106662393523411023660714843460674136876966469252230595016381943106441795071961006285182900912183463645436455139751197282025100544147448146577956175319707991462843142163461720974134997191314972150808119494759204178510233205333000249298478222622303464871919740174355997642242068443719410007652930642848522363529766059992245458367803353812094892486650207494610244497654867887697125016749481893338089106393253066270754312107011616569799920624035284788178490603188293431463778320539826351501695199005488460162516573345699128110853140467997770425172073336515920495458940274648296061677762490771364060493224003991818279066563012977629989873267051985081466179396753168739375779235176049824205779128586166839908681364670943793161425394578421245568707840801047992154852222550610993213746710803673483780253525047140787868508612972121654360397657739194962378188267594214055466512969392900470302085815611090168900114702444260534835057749499653691199528890081875910904686505631738447550837669565038297367144120623910414409137017203871187362974525594551557794052683210608869766278007654471816112789725980593101028118349423474337319764714781369684776213638313531664464142532398226053383681289576855422276984165126676396184376484266299297487987614553295720901436993687017906459540592372787342478628468958954164619422719289121913237984286207431563633432943346870221837644920991589040004205187432676162877829322387840996417967396740585537187959447621914517632623131115413563836135553468803254127316558015606911560183323588278575495857690791415716826269123762458165607017815698618894861911770862311876890827584339265161575083081546603492691217948196599206856035867497535228554169938385439860119051512406761411314610314125310338668453235401504808135221542540845303379936233742258157408135900831686693488166466742512516969607046473379998095401278699137672846037559415820873890100523032467759709390366656357880943734006878337796768892971299291411793748856843794565218213183154858710495631811158917747066368491872223416956500031897712100198764702191495551695887288029902779131577304511274073612087068216019407863579743953465827812164810395098342875974070380024365903627196570490710648646776305379643722586767551747483199600184427772989938226288911461382374528994546384518057784359533505724819114967996796886901314067286219212861505008015341301507542246369431344060336700699379881943760118225973081818399968716755783293896035664281782114955118340894092719760575293428532727875804433062022763850745597752325354301630004372396701246615818009065322946238158726079686445089478743808142545788192309260106470231838897472356949209810499685004094177944042185702870634290428383816125967598503715225757423597955959595218711645796689942132611156094042169307262334294572027527223800889180693189905188259137544760016851286128634353192253009000715603540723330965908040292924134098164615869040852016045216408847528799202355031942777728347331134469197382047262196059856015107551648156121085818294930865549236437449298130971554065707087248404444950261984591019341652697855491320068626707502617478326874056670555243754682145429548956252091334496997999109214476682726574701707851268057919434949539363223195352581540754103699254576313720735975093582528701994559130621979224184324764020564917206284803322909440007671376937951028544228529621452213518921839378109910720690152630322547626652343998899651401141746022051590437570550864537362716049463478433831038054583613288065096320519375852834295747317281204540248366357944612053014184417373345675502613408073234883243172944448945504830117490175777696449010293385506819741389435804081402320679233680062244239527394888812066500413875723971285306445904993392127242684179666733507313566676563513964526065581015827805820518816180135079227688192044288672235165064121576758989435616047848007483794397535354452827262602566205895654638850306068681299458992810810381678572185421942541889698131260025520484899511967783470499282140203253125357961807799048982180008844437549853980628469629549706758442757267952851928770370045342003710228625321024874435461913278206332398080844026685004339196855415878274141418794581233277045659447059313392084435585217586946763409532877960767931415687762256072876616692868990083575488637347082398906029440870162040697661396499839676277304900341746819458868849350873308697217682713596325821503363321706633536505818127160980349362752348504133764378402099661969910538174607886369406216383040873964196812349081321377890776630336260551862389458537632508704675752812223596838291710834195944967498855769324706305367754113624107515842369278804831205533108175012589888079829096385949309847068493135917211774546969720225137179587379257982162944225601718739436427020432838722759528515531510212052593047592294854275865519649417410509691863965446864566002770225642488888985331734006546312273310466927399379899075168759747585973301322865908398610145118006790205299330865214233140265722980657990019556228003908689578491943721953742111075009158880424065726225073932077855283572524006384411581210100271053991206007567065470585043280146814865637986625291699986115258853453105711134962639404505058548566555770958509994124010605073603974797964308161661786715770810400988630834012478518117469382842680035012578139529449708125203255168719938432652057256290034320988998321937082663695753713239386612511597472302192724741340440953739709641170793820788149987126265616032935896365801918971556811869007888744753021868851901975000769764007418117865172103300198658207129520820391038083376393415597495539941627278593410202187885691504693042616257197571189400061327837833792017066449648813017868298348521512791878604706480339668675390052329881210948004747883923996596266247848379761010586189667027172146331847045589879603151913609427895520446422049387371248094396832891864689394593174777941392572388267450818740968895906039639294905841719222115898819185959177228163685052136250594810594492277264571082343310604040988713863732324063343582438983059537105676184173866617155636590083924376714885115332663834532065495990762679999502207116787715198062642444585274708194811698087721646665956658474774367177418466094746941875902588190400575572551268024334560543644576589602297002417546371577145249785441131276129564093805264204462340051373860486136802015878844771557536509522365099079764121417291328434409621276178505501066197451934086309474495759601394419359806059806989719502975285212922276735405729911061281279163913610046306332770198153356109257119515602776677103884904890214513662457487450003956606265476505666580913103867118836567708419699046372456250940437083166106274188045901860988841742653182630979354317885751477234837638261411509454200192485274409204103821810371268811852555750722159646022122694669028551256514320886542360311124252032617025552758111469654160401523515709641128207782200733868323362496521633673636732658164554845225954328664155103830408211367409599493854831714985961633916040019319932409214332124977742745357870678562820988947423612880693941652425050306889497025296575254583721722907456177130882643691234453627686943570863768766577209560867483509778382192378480803949690051488483097548273698091451675692688867515297750227690002390021040947485447359185866193198141509062223845108380642072350885198123068921317462453238409032370925287021740340847786945002349845414116370486210737625661686929570107652843241320409131559987977628191953048268115534129036310314099735546205311097427128431753409364056424194228875383653960506688449322629768135365682448858210619158728634840375379919659732498258820711200442886570481684077889295393789990490344739012069280841837990696390723022118696798003949511150765478969722200037819872727773573795682552124400640859969914859430042447022387101503175274405820446521728516918445621918362095874443659853304445485480966234382043628468621353085371117640624262554035563085527414429787425452807305935467676791767064860008268542819404974804034053992994253133902683282911901676934572980880372177540865448005383824600036585717536650784104978856362804992912612119357351414431998988280095162960519796707503392253489880217479118869725129068577516012339954960601595153851403993332571821074077360361321673567130143301030181722521423006500104868737777873865984341212052095614609486546225338631754278397795980375835930111168969272796451655179706508778265413284257184797870710891410897358098438471988212319585504615356885023190325861793550657036543660755574652881428309883278155221480368198472410536505936467451310848903149307909376605985069229641168605476187450334336747463314024729685053942820041841481988621577163070309078999407532397969713106517304055519091166619703714843962059399215552567415685870456871294383729414488407400252401077529973616647264482028205246903283556088150954642213601386766030495585887578520670520081083001154640793680743465150372051590704245177948846132869885425673685478590025779119772472038458771848167646912991586826473445573765674414860076204382120160096556782702984267201147707437016519067596147735963107771717268475609023126387541025919773303838126000115397881229712174498785989710736939805881073011659694221598391385512211251647648599451162532497427032020724600809460381587896319261071085883332687276401924263957601199864212254300499836404178465903546542982407213976327540224692270579276635168367826938792711763707843258009059257862993457749946452938307246041892146605017431142945829666136840594722149552595854625934961922033520898528402112862845313841359915449163675943207987417593803125310128619144957986281259074145243858750947929152372018965315722847779030921892552633327941156151923935479538062541761307375922444112882576374145508742399427622284588838119152083410382969501836441750596975843489887687599299453675472749952175854058836819730160541121681588094975030442505206272313342507569216257617705316750270376861910203105388304530375067675568349979608132673074022597064015446250409854813886383378989463001419458259588833228113291078271437356472804700215126421619184353896460963601637954368636329587830804410339966149777836529661167749761046033556341093504313481590100420664483441065751978633591700244901827172758078945648358458554976301592032510853259600525900543072370830915061136013115521680449464188128303816573887407708348044249887782556040115295617411929611624581381075149775794288176961666514058343350709543541770994712227602284205056155721202837542023890220572854499464352356460536342573775164417652039628867783334282561492795375014904137769452764303207088689043888230737113755456114903637084050839167912618818863252440942283708205096777932653166749000734083716570646261116579685526137790732948220492743413285420984402086719501212686031816264482972663172277095855235413168676502031826712408739988309793213848641396595548169099564380841972529192981955496906949324180247107130678288644038453156421407062806476697269056761892822464978404753344912292878577698105620996262015961398184096445055206817277403351181908875029825428614016053339220173669827743439279753798365570558126285728485764034068953801243127867456668142424071145511027711044680505939858324482994029328869938338088411955894710801694626884603490479872790192044732818136689017430646916098891053729015324378287539993350225377888733311545616041506440396999215047926273129766933491167243939392196680331591584743635558864436570220128335558082141592651183148275695607851914198548113897205641541692127313472476847125693989077747087665963776971210476683936113623960475907245360799669467999447661949935335660143730728942332348774549560195440412107697673350131088304977702578885155633902343153062827315378053252949176045704060427597274293875666704069661123458938366376669934276747261516504439520143498896974697797006735046655508534501962049482501473136318535400889522470245394073740684854338619563606215068504611114704626472914493625544764150587027804537477845199539554760378576203558390542739935281314519014103936285057638210916303848147730998785003716571657324014529332015226383598415767750120513663614926716806894120790212346355242645249553946026092175900503827176413172909483399185300209352236622751075663243032504204666861052116506505047471038136379499944563901876189545282881064410963402073549975450792477179294147317581592742834633628564294255257054645043382346451485806652321685148651290847682187211835677428390935252034987378688062744948316417378173186097987493656661788610211751999725171111076596194318373584588111054563863080519736629045984758826371573826522707547552342167258102490539670716282103073835564020085014344699312849597818250967557365199410541881989378549640995600235403916690789648956511436045349929428751370923450156531514865423254574352098670218759787308406402956529636886797203822661195127515531521166676912849499073172725210363341773322884274367150662243832735065514331956526583944197794622390666422924729342610218634044776035337537086810143985859784807200191134987374400117505243604809872487965656397373124654127348480896480852651235495799409135170365298448883456292907580855529811328716862386851753321751581971956161126104446297258289687486968721593949751521262765474121270578416646230171857971346858739707496302969398343318621789837979676519233384607156972460126385134092895781683422598465530939588874307284844042115830406263786347739938865870360021174688350481290187082083346192634859058332774159041863496378794238061705065841837531527077125028959346041370477430578989410579001487654430289292810081260630061456519324057058748789169047575699262958385556560759072771479908404624858869819917549823610671124188015536770326030382030277295596744534709932560211318876098074189430245947109089148383646860055625194014156275924314897717617142024770053444648421021679582612575789318574416688014090496344528290411434767835739647074194625021928426826584979800170456832042881243921747888814086427065111267440876890651808335154222669590172853004044503828022939783907028342348715591336564044797646710272236182716757032719032890271540203654697324620381446852512643892552988460219062367657193858364890420257615006739204295071886613390974368101832332844328717836599697202244977415699865063132330488892346981995484706766784603720881479851365616866882631245584077919067274076842486423244705748069490148331204743399853243401379829865573031006373384073067725075546929930515702316291493697143203436033733184060281084822639494758156003753325046274993008798029757984409122878366749775863675743945666119656848747422966060369357505127855461449209082625873699223920256720512477419874592096166821568081896132481753110869760014930275837633013167769969260826004533564539882840587717991236637510537838142267222250920923214047244683827772994634808418472917848551898865578208633060608488203221754389011365709960556344115741014967837176706213764207632326619950455679436081518984750528875342847638094649306761705054060875286261921140940218454304827105966807379502604581452999798210403191415972770660615687881892340192585397361575779247149277479555214255862495289087290346212825966603094537781638466548744261317332870992011502878900238352198562530227730352125369049632650120585356483640517161760996486726674284638281898976355815991438845164504777896876465525290093746646842196779584680280602566990553015446085834616971819434092650083549948903205302001237049017979949833872582321124957462811929042066285526571999879934460019902091217603795682103748201676706082555865744222851037593864705176808406873267998009964494153861943139699575911397741745237886942184521277719181429074580451860906564503263796342153024652573373800233304355645802813986736957396707239814501447096570083781304808983386448774628588523248652698796804702851213161243136572620904834397073365955480729461824867128551142481530681442739331545318752830624756125371927744300576180343822226486434973059257721081563877350165930120667529828562762787508117063023520427845130351273034805383531447998712232501789739483658885983685770406894250717423025010281901401979009417737774839528008554544282303988706586920104331436167205435195665499396134432092282731876917759969920147202519134306998237796213434330989368217076038377945950572427913182280925469679157157853203134251822579365541484480728617086533047119068501875136268729378763814596170984486407575238697007353485429692240848778365699635825357766632562272886525857610161476228428241733375935351631370317368881070778102442208509294800596131498511321351047098009527029059376999213479301387931940012729182448016928836487446198101156268727130282707222658030255933370646843432661965517756637360821375032268858592204252320188265212795850198683562404703049416008990737062353685039968054231068549409426542680369535679418535725914467968243325301819522502316182162968420638750872047950744344857109079576832734239082555710514100910906791699158850735519034562445216662196128705872227153074276514309721128570533254950914265153496451002249422483574485278496147430114523306391033770953768917548114191936605344051504374319087156047513604396376693222105688575485465423815988182372912263052767099990334908628989945652357496674318431617223277428163996026526977005620410843592733598272977948426748100226917707558920989409771239242607751563073179217038022998285885504443584727004007468453892600587629898923433089878927107811885499903615176826788220472014878701519991516643170764433490784447072170119668686739825507826243484153930478777414586264641405090946691139779975504054646915292841337729794936951386399392319364752118358469472643250656702246975849200370369658269196810720277700895846819590489795759756012676101749092787760853489135013882727602619240591530745077328552932447619244853158387571062385162238273476634069987871293928399922311456633693319532138966100525645123772136539380130931251610118380925801437286785434711334627977331647757007676530817758811224554271228802592095953123786570121867535164825775446232708366366770145778866883049319628046911875528937186045365862939342672104408207616540899536235679327030116723708328209462188667033335549155634285090947700020168554500619482761985679693635391701506187242311778608656082977270121397709097704739032226253250771012363143817525701764923112471966942545994825174359039866627440319270339039831295420627700152782445514631345653631895848579114527294403902122130410178448444329976333420448594125334740493197325616375596976425900952791715086097178841486354062423496355190833487534961743908761084485144483826115343055558852128983115689986802177795058115604084390838201720122717896106246685625481580457275285686375879712885378833287710760659084148454487397346232429413526269284886466494789950730445845622914181011499108801109878894423280870866536087302185551363869158728158279999353281831933246378006055701725319043111554238186307427851076380380544694473201123466270377145319753531803350593575301493901265112340277536295051797346813319425645616514961818415397346782200432767309139571544645165020934491872775629554954666430114407284709627938395400836107900395585425852489494136506780080222518418607388472237892152295765288837457710068307273789186606986870115408788045973491880555750940856383501020976422247105327548252503840263077079961396817941918067093092947861918634102510805589170560335381810718727218880581740397629349681007678267897347317046870341771689257421525379165889417661270690062087278708991289289476596788212852708753727702836405749653876954859539631756283851857131990259712414812815664523563809650179503429113306832646842531685458891892197217983282994084263460255112437556634362276423122933454095720208283684033353825994718931051531290358928020197393774062614446890641061312780695151853156793977671900349037644836266470611527947970445136362356907827426341108602497825130617774921841521595494909852756956176120815167691765389700008224786414958443201003170638848063851361952938695094569817929118966615368429437751631043901972474168145042301663246009489006648814698142687276497222801829997837502937762896583989849867541232642411053819641662063162135078962249534597728204041577758817258528692302317418343530384471769137424509584808251869305256246132267710597954275202036975289030611597760457340533524622702644003004168894114568369563953579466413708790226700167444422639460777039101702652655922284094474335003809122636007655749337431283793960138288005870164730129452421666210591331055920763429174907773176114824270649091249635441387613760797283026850195628825816966434677637467471433366090586819294978778025160942228531588130216033312360317917654693802261747668389110567185817140367912101241390634627792299713261178896492010981327588163015265716102593597642030376186752458988445996929459207913741836208613321790673954954266529973726071373310519001284752259949849278145074112446970967813601933231041672604161231750051873639209649104857648281744529666955186921222446425634145962477643897454900307728128163283287336125071828026829575394895900312043291045054488431805512278479965152425035732693614229112547525037144462655918951934535898609044892081210961216025539795100499511136397714843165848216193138107779941726029781612709351979696991247622093662328892177799344562676785038975673110992974924221050011285027712999736391850740948197818459622769858923658241093987268509664809810293102227133418750953870321449258604405865306088224482602038624524167598880505172847151156752667127982533595972356579138414836119171924185386012849575620770751811828143524937697889661806188748631258131006462606331823143346169395606551760319294925464031381781564870715667866774654623273706276830547329252816324645377070422728247328378792181160387891892525042432912296020549919005938277797131912966665226927591134123193489711947725167341652960301476169533142052531863737127168760435593502557566852313072328961880432697498385371554269339390593749744908184473567609699985849112880243219192462306509030655627301871126710541876094236520630684674813498729093458698084913767924731470176536528473513673868527597142873052557951276766921790565742350209465149441310572223136227225590928950622056993675370056629608555466106088128796295717067188949820508920963195735002112121307338129553112394179222345226941631734261285302800600801082580854777420470505178457490821158139143097764683784374328217869217877271644791787022991344817973646733789506518014554684029080925667017758352434327337760430716367462821686173400687026958351898169463207136737603527386745199503402273369453798728790069632200852886345546436276413219275670540366679951736507208674760275004872909059176016774188116890472099755924941156629508050075125334527960068701533239520816855880451984442054539879629741671030375944726653709023583128173457715700576481142161214650917144877366923467815897837303121656971239720888871644034678788566737024723560741266318819738119284990694179363673072176548417516937184551145563436113471225187249986193095927988539975115091517860518820983691227621422470735746831928815553275522873265180283321282867550876777496378067226515927903021066499484482336300892676316941594763865975997455193347877743937443439210139409499600821218916834148089577421838500160373911564985597879001666828344260125294941309807291892330802436001837653782044665652361808550865668275398676104948471288948252380161956806422045306429162760511960754861148029533442032746131597969739635949650479572361893141688562734637526615963530786442682850856809576725564988554162474552199429612546267280242681541056856640203133863778562221463937889447784357911875334449427629378236281187007413739703426541579524416255999363454763564756914494122585228444911471748882193148084289201623223713648683867342722377369221964834705494839331271740163426609585332539782644200108159004059569592309475205285516293322224521881237221734133753989583604135818845871096431058485618986026761211822190813493108950901858196163372616145923369586196158456082403653884548223604019239978174533908918985050096400265678582352210913028323758348556567181103582040683711028476424663924716037129221526417532883988366342653625368463291466489706311949712549486323842215322557368150335148684571591224828449129503591889829757821508655350067320375489498818576678742966362645831626322639375689602495559558973569554785389350094941440182180650564997886597983191446979801351074297814412712412451785937713100976049833662617397092606856288196489395791425669258084828163474948047232273943400507569796086249223923655417535252123315843018961045334687773607782481312293752780860622371204919916163459593005383320099596091737459413631934786263246171255510036859376434339436942520300756151011645162696944498715238329154773698113895056746105558282068522619841863000282678425514991376951008814486546239448847869901391223411414996108035486141349089362102064870601093431937872881564739481233595213179405578335342842380693834133742548771656656002386512149742559173455270807361781171679843220797938893761596032117068503078895359189656695962314330727213569865452774173580094065749918026094712602456890407639664299961891154042721676910154014392326472763731996089359869424789236972502383598460392831385361262022382132796940254415499277906664513214113126629356604060125838170886020166356157729103182445406358593136317385808652096103321302408832654804040196970862143915505547508001831538298019015360225047162873636145003847225748147141992594801531118819287276041050053730048091459791419877563740731644186768005855107916586511525356029341345442499826790948238790778216630560707949897675293301230629149737786638361111812432938590770426260686020876320994026639108549097001626173834691193401887063128160157281741919328992064073051485637925996615163954938291264304212894929536685366388173660927770301608145849913655816661053597586834389934081461237407047778959107236512970595790863696235206607433832926017234705792692749537759792198558232341883034111360588018425782479577246746532208797278406084040928253420897448081609670296746664294223741021497010405033336958671584500496388218919749746874733022400549257379007412218433894963949972055772721095272994110863768383574052565266038608912986695049640927031457730277708211759370108479908588652551805322328308825378499951855526687590409610929937786805086585095667165460318858013778517730968652079731939782922847970700816545700981858988718784884935530046906032436307974717602556337274851483729845735603425398525542757822757266400328828333571591739227759750295394441139858685936531193657884034290738862471384696021454575683077726207147466383865815849170979929437755065900927440901632884887644284495036801358174964481687778391460279042148284997300092339616632844866626080058090258164285283073216492912268742625150321141992814131455083031672576124269570742980544190630183268566509439692949837424981650297765149592599701652173593863776941764918013539624668897837272170771668601151698099123096372762019387830432721302108307284587963481970810026020275190628426079376928339588846340185043253720034782615125102209468766506162159694674293425108521105589608521911690818249356728518366146416464373355440576331670935947785679290479090898689630593945259371339738378287510917709192091639186531768379617418730494471274281433884229509875570908465371127523711182065836714965344410612872326289774107222831971572600622806842746011846726224178317729565104750889026838093639738750301562463668944034720519694524795715914588666203718741694799342711357773285671593169540567250997497183596294089813110899519949222739206455971532119246742448363697007661465598668779460537330344535188404318325693010833484573927828476873364244684834389418536714989402234313950948907629918840027783255277594166212177212271116990851588176129848686935765617490231297527578420936527958461749601619579518732604305337291237712654656322160099203920159719708659969481105159309309585933066816695867956756460251611199010062919163253574566482827154791611157825134121197644492544585132275290744769890867705153613498322255551646165768678750261445928517138612633094065068501434756989367457600672938882798207815211328511780753811772940376336688746531039203307224092979744936147870187096762988919278961381331668989995461704814125518363479373919081699686149449292518285860339270217601698757000243206907181686392109765993432030523855734561635347503869891422353889825112443768568588463739194708138096407636529594509715623446718443244386068629397948035810832188139305133277893671643823778333688616418174471926990094032610291916880290561423860943108689740160304498374566124409671851593466094248868375682340619216280607478539246244672792553734222259535304166877843775944763209576761708012461166484889063501856298038899264207031147259553984424386113679158909842748331661213770781504755174312589061436413659953054471060330488331345594553192650417790722404656194396158847647695610354534643682855439284668040951694288714108786202958723231570609485762528789548934775828837553615228449265249460725502620772716084282736552859344866680131066320791260874911009467738560846782724323820084341807930195999087895921589080114724831457962383514056276952430429064331759373117208547416252581099772627382402677258668120059027319916982783654685124048973838844203403286059204101068482876974296718072100349781804722174069992061476266105018030829028826521109137769194553602838503673167738429833151729382950436701069245872565152509943384381482162711870629219190063840603170195111149696759155461564657568923663494985845466234951776585753150888344728249232472671408582321192750893805877298371815400238991903764363449561889325731597503143681098957855173212370072405907013529860668483671813411699345680259663610209272317328041058101638897548793839222356131538278360846411449244196918625754742263217049707334677096271040023248932360450846168305940337428445232982368997630620141392699759752531546339155297889988776391146581240222571718265582919033556145999206444565284381310624224035769484163308673403408179381672040471718974460388294048537404984701527232335406753202553552700923957924640175893175956964390162757242534639120401559908455429423652500611826769857952039163562040311579670720037529537618330668817273223113856937031076405012774491016414772984020909108230395004080804502166066551157218776411061731849177680162834916487172290353623058179628290733640758728937599342199114047391271200475625957324520812579003321542524304051084365150859338337014059594357308668482605631266091329012720617021976498049730643519081125489283338126935450256163585112518235569788319569439467020369648622024408432235837709985709074580641999667950501549115386745778542315254529691859198119553751957122677609380535346904295552023694975531032393463809535995964180121043208465952061170464896682230666960895558458827047809112960542987863384583673437966450072191127352314228762965014180125168690561022604107575138702497146251995529845639731794032524800300333500640921914194282143756371995034205388246245564111536750828599806249096730451479833486261562386522526700864520922585121620259294747274779561335547448370399114602138011481527667193134651689669615789229040515279264363043450448347817868866267648570109664292436251125068923659420246161552805353167927207126657069778908700265019487306492859164314570775597446456711961592119998895932939096299958959177412372968749594969833223503603257973504294821489205561380797414456170355577060203239014115402127103972749497566625825718092763355962563622390013145703541239749626088878636427437380753387387602867894983906762864855146733615827211181915601311595596029496399204242168874872237867603131195608540156790697907461475407419271546683395420686593654297448609731617651478056855860071959816567705086177500316728506236676695618491345980565649168830352532809446100155225630431973736868638993342384300764503098171756813231173089127216074707356424656127449996992385589591160739977847596782781014759187818570121993081346464497611994637200928486653357382247215698201893446335056060152629035678256576701117713927554888404597092897541916634647294171467875921542541276086967016974766437151782554666454405157997085086496980827003351318315502178226475251349521230122565665412615806550980647598461868499787047296229706594027532402828179705857109184391428935763208551626730473894396289473511012490470015263520002733281987883514810564559017328564758635819814069877397676355706804520924135784014293646530720046984092590828966861023183672176130384635049541990689676895604448753563516277166402893017953290167236667672268433958738780133318657288433184951551979917425992617655754213423913508148571334717263519794782051522904336246734857340532871074468824793210083662425814643255780022316691220369599915770660961654760273058371680425531509305380580557900333258591690441553038086822684231161384055860516376403578590508258813925289696397228684644921769843246477798678307889255170130315437627273097805963227585486294104780598187019263460113256758515345593575671831398875798437713506983052997377079419343239338703503843528062170302651267425630309451954242444214021693100359168592024442298738580226909472107719410132297025189933961547676516148248691971834736704083738577177724263782990749972911747966402598933580938209589562168163944395618305034451672057917244712272641961128889367737211759046148902376557228240091402146056223852592003355524106325855069363030407444410560628786129118448645097817184511984844072915260538745998470676115819568024187018640264517433726836528908089623160292173325069662601635157644738443138071683511628682167303525415413990747095581452476937051357429715124301865615651030254777193566869023343793537308863425033226552567550826732072947875381804286382676933200242750294843837242032988676531137630477430106247807796804691121428042358715842926000018741904751148942837886968528473793016020444442580491908553484523443546253424551575828655600493981554766830914853308412079220498889755305134243388443658028590701215207404591487828607316071731755866699031367307639030786542072233983497611424527698772849420568697633452399833013205688725498550149108892687273542335924312149542876239559965066320603134288923402161172925134323674370717411597149480603705541688909594050237972208038050337287683884841347970410457869740291631390448426814856412776951109762037133403734804157265858207271273430555873306649883901665292921060114275327470752472468274393081368356551394559002409865320762400118963583038408519232778775252452573274449762783883403056775409130305325040401814074364191002034050821765266439116781684498552561004393946462815001921819489412162266643661909167991038274943578792650237046064991394510945013549797955302720492190234859684291654772734715636794910932106410181646007582721862329161644617949037034391747928246872277151568258254674711045570670675569059175778311531800758700824824140269685085538249178984701693199773313829255904246006675597777888799760075130980898821028773435425735609121825343490679427133530313805269297576443878470187562330973705519813759108539546406091654930408545702331707923333121146732622605966422628632380287207856551241490726964873140693480734743914054363495640147977079401389200573588374169910963036063448827490366019035744380427079110292638880995537468445539678429105349748024906549266033168656526543812669637979982928222234522523543782356549178671297277252401511720221857542427474748955846364033487084006971618013138031759561809094180368944036465009435063408189783734808796012183350499322757671979485908118624944193990821229432246001126900538146403698540425272721335313777301060382559932021757694464497212948294018318866985568011249950076118751267280113920680718919542462212678611693955431131461374378864967023135185230743359368238173372181131068714314977639495180366747485390479364867506119099555596420785122622381613371593658811191881316589583843082804914218557273692640651921853388526405380702875978745489812226850984059160004222094733640840467251696244370313766868494792063869748958949315034304246796477093477530683567277145780105301630640603138542979279154518040379911238000715782328322355274856232846663801337810918369134649986341177339623103089298040961901320914566399795277862748417806162943587409083910904351436853091972311297273660053944635932979069828879298135625029650871243013460001608503737463394053212168000111199019374619433664663738478642295285836706373962707878685503165345542407784638897604357492407188474387864705492188219900513312598736185882600809796504887379173379119321910655566363858380526698694527982047890631454499060863313455324066502352925830409076215157865647483578222273195678133880736088877672800510950997882498980642534905983882493533687646933086542472799072630347352959151323714222198748508426948224691455849969930920424816747226585556851702166287021394729555486028897706299756839038823314511542977078287725917174250836140427298207873565943466179255588752879358715242982209958324609091901277065444842715698962136879992478285480449350620144279178541968525576027421457196615462813404813682289847463334837510876331501221067761773852373067310706807393687971532387003140515844339026731077230790911391217927209639670552363855348129881969143220735435512451471693606673400221916932220081610722038831143620702487008792264179192707281179665217928780641604242699441301560205034335518328234731204826543615420869965682950230554181958033849552137366477837137966089395100415786257571019913789216523957166473317510291783392600678963479174517910751057127070656670003470445690919295961950414820149333565293836184700511307707280163813963242952961366421240264755928653449399842741887167101793877034128734700634833454898538339567988700067940260822726129605672887490618260598362770302293097285749060809341066537809310062640955951023550641609616396768155109899213759287521347684947025099515610923495859961271350708237601783782637394446008599251028806935941040397918874152104909960996954803413833180519268279748930300278506734446039379877264130887647690786322958438383491767920144233516532000125957877763979163206771189447893288791476121062027269805270310395342370897247457140294462709055044611987218382086059018693981868830007929595518491074519339327844095830865716041119224757723245862404461959148095156117461635628649307980502521502334774392079130300957675531362466801994751951388176447156198225033449908570172387668684769883040101341979024672165888370325876919159522309473757689405984209283055201790312993517696682324743342052967357866830211661224044439518536940427765723820488913520964298226929986088686330341098156429090306124546836341167801564073101900064115407783571197916143014522118904136059301995659540113366547466171880059660818629211712946770376185688099367801549881964983697142703906236571053605329419097291516062749398407298437241337788812655092655159629244346837178611586271583521773943750355961646644015636594111187944191312252188924489661147630128615273048180326336684110708411446397546343127960521330934813677321838437168624999046946509134449513192953836130020084805019846185712513895236820383720277266974595063727989955887004479249978128813976286740736185554912238566469900495803868996811203493063200571579163121577608867226934055722498010267623065819092102943499318259605720370468745152154629909378073391089908783986266301935459448459852357633035355083436248156249095404846469653909570171053032978818782356987982024124881934026842292665407722801918442039903689545449867973194743010866585998227037907355629177083805748133112195168582170305039805348023733371344580635926542102361192307707876036911508641149238218500140504686472252218066942042953139428815709932986446667545207974045614134273140650157944118499262009559302682870811444169004111164313435753251635933746947429240305009076310551884510042217431153719187504396024566763339365935974752837214913771216073884748626889954312935295208996430649022959215384693075021842427222463940147158230654750736782241675377019829333532767820076132762173639590916478181794628030195809941102310125128539745559682631325437692026075172945200344674257125389823879520304487635955695441204176576392400064241186620949684654736120589656086529602669402612401943357332030467737814397111830471231529063307304577364568930182553963844173296723742294303644733075221845333633325330839704222199495238388953436926241903049016554853113505346723013722743397897054492534956807896786143582528511728847332845744378682790482006431788132378538338349156076160214764668896917156539832487014154145784173721394141736112391713852197556176738039733697603267539520342833404283562585567841636927877566001463509966294520719763037932335751434260387179321740985877866940134870368357903149003708683088442991670538057954944359954234432705882497610258262171726727647958487024531812568763365662818489624510868579731424418691739341270076621077233866703040958232409406569163391434153797522773503924589357556382810507544841880557110274182349659404311928968842585661201202237549637387760189446146117080108357973376860102976220126979950746367840701880945751241040998640470744276145247592397303657878073979336192895908969013086580236295903769565411490501259459175775996748456565757942750919844764691899598563555303330479216835963969771770913124170716757884990372864114691950392075260404897528506503897382208544438287294967524790642626861927546018286855033691044248631661225624286524648046814797276470959101732348905614415533191664655823458253876373072280421791330443531838988414763070817688973090835732925298598017569282553739986385020772535431770410590093295424281179685766504510510770119888125331808669736097149723277234383780261997552654499347121914485237094995102625933369526611028851277770481662129938501361063799518946401693663984394185794642634118412423271106943716249567214275050470722254537288010144758024612357612742352956747102457388836466019462701925093051892488664744399584177509427700556386955756466175964088406775228200698163466031052285694914343198408996502915910573544270903798413626675394533195670545429024717118681729471239495068656127334303122495810057339927380047781334180644346362316660446535835085259199660491936010756308480700712295702871850537802667080151588905992221320057828410319728788322041819567410286855915738399891732424977486424686964328049245506952241399627497731006871806218736674307718101421073767156134065272849239628007147719666266326717392068961602295654638671603124246731502369014642290432755680648934096103807005140542572717134493973488953855358198328533131073236424071330926089250848227127180851120655647437615513243458452529119949612895057400630476216315270759493125447309737368288122915628262136131835874931106498039518370159750780866342405888253141856252438923800065293097847939543762090983281100883009913504756441493746923043880245336011726052395216829516437266559458718179948506414698064039058908115971558718155413974193527614593943752597158979265968891425126546269316815085713119197643673877798061349476384766779162213996287957716519217215150474679868969434370659691669574074031460514284121361186424075347958020495774511242868056055873657128639622052035359728082585413854126598337836007051054299156065430312053574158225540382238850755157886159673802988538847582613002609455467633274146088293178463484380111577571683540990397594928137384421342876569200508122216857584937546818194694375005786447964090316755444667680763430320100079979433921223510419730471335239361549004211292513753562634130204170955845290547761158181399867957836373670150079709816494396943422761573602486965502490710613638278605498011689849569723728806592868385460441914880973931709533857789247345076550770527711176221550243525248436826870763041978197820767482746405219259869736606413192247609060380803226742625592547444138896502516731303405048406673556756372659469611070969042927351484828701838367746200997737025586771548483006306830829968635909620294369752758572620806804217734122929948915224684263704033428690861393263248732474105658341649550759473761949264477496029479239811598896084799506429262515957860824388436359291128841347861820126712179340956724199509953870364904204139619629375777507953102141138996654993849957656210560959958216848572871612317533302099308233521285694937916028505177073782863608263651827834196609778574751836655772676755038238965509133797239911954096441812981400297429327947057833706982069818248450786169171007443563417559255836204947725515729833408784817917888721872473650619347276156091131190021298499705879845489286150423185565610374209365094936143297416435750752846393953063775148373934899931382222306381462201423009452697883387574586461772002909524661708439753659925671038317211532792151625055803984506768905371274539997174893735388048750313277004339410932681415811048632632487883217786243302498666347648205442066489664598074352121331820071075252658713426676059520088389067445251988327402731467490532833775403900112821013978562546069347532372200277730054768768600345173689702869900052331666595712387671471918904045455333459847573032909953156708299926050716451666453824406894895619594851775599576471570699761026990387924108186916551297892737233980076137208578851276523352758304027326414624540189159871104072737908211391533607448350987529529832998619183046741723700942228251680253704209748754937222595666758611277616836507754395507491218815942450049075299283225122246368268510117056260174312705273745826315629700726316640486780064567023397830116612089089363956290982852841656491273552070502044703300614549664110496005781097658923033167901366566185619640470265489305512464800860241431261969774354283095495907473250781693065584210377925503093420812753649984924649802381481461435101144212838066713207227605485034840281092616229543435520751364757778188786865140304841078720414482306158172807114971239545581851052281491509458072198758226629354812047070838982304753112897722021841648118857923753217338048718772110343257889517664832549133246628520171420534122383082983953803411228269592487279134197086525109209730383835689008173177316951716689953769322421114509262955958407271114455463721711757930636898571637258473828034072944017632417089215851656406649389495458255020613829385731268827841264610123238197225576128332796651501835092314167197886018200913207078572649686805919693878333924721478735080484123097325747582754063371768187850924306268802781764579866772971871495586176311239468590124755464504796307219046318145064257629722230777484362663536759389102056455958840970530754560793938972497329978847293478271382955280681177218156052139748963446218393724205355274769198810099625164300011586531409612419357112535683129159513238327336344549738054597715523425294491228099428235747964570114446063617914712795512854653074669542055183372517607667853834843550578177990699853260292018741787259399729793168347427765932621341375092898574427754246443516276406646655656707679490401675366735370731347493904923654271869643317475052223034337921858022204630023660957436905840606451819050757321834602914919817980050466218964600759152901561703922668425060321418666523901044399626439418076167988624222111542868793436730629052948831290354953840909635491891909462989510919222608265474361446995014841305383949270203643051811871668280705874890671290629374858985661861229053310242582767069004708629520022718456618795300839864964140785908551367552775097848318374969665590342958363862483504045938565909662690826538826411146672591967387134674279175742020328613780033907472201869737490775090544371051297960795462767018903155773516769999203534304214026470708904371782585416902865048651570879526027560440458237096262898214138754204499525996414480750723332368797538755341350435272746050180996681064166906139274940311704345251773710501903521115081510914221852670845118521368170687058297412874100887548430641875611778065888571113880533837140773829484181396758658526542914340238204832060229573970983339053114284352330857821932347169685334551897511257364629075311582362789827410975650204853595752036119533897708666566327523005029983047990804913859804924829537324543748986650400806124059496929358421389642152136013803734499826963587682085889834208249566165397035343385139325571346816399491911940507740496746217984869458127994799361926728429268691066538553285495674840617064484350135210615290320875071955724297406902195938642306741069468786879862273199591748059731815244341521858411375259673945215790053970110041809941751117161132825258477689150333826342057000397488204116637946770268430638954637406645911313988121852598501788707981687906017984807353826424597986344593801438443136390968251437749475143195478115923680384571707024697282282102896730616715462121372169180630629592231812820756590407153911601555883050325706450184462875584366843892063154643100111214799004430452836240460593956503534570495901941886099781492847466987751849778491453447417036206565577194854260472149798030689645942867503616457062950949886363124105150780469343207760250488736535406746207893458473186072252533160734572542452303869699684495778674788144022532293489273721452800056587330456794852761706498362899976224124456091805001338906797836682110964105214785347951462781681924500272555260056585331937168425567485313418507228233166824976749854470148340278332028710618365094350750268856565565569836206197970699184419199403811418113305462574354504811196223886767489352604220493773083678905562653299133863926642771963961306617520153004077497038015589184424209443554214189238738767097218988996943181129832834017628203366881002872822069546633771984543212320916018849262639598449791778992584519451211219721022692244023878859761539088318837339386366021916644585957414651179863301548087934415968329995421338121405313708750017210316831192652035718181129636383335113852493380956147762945974923871840364322414829056646231992797063314203020338672211982184560388794388314789460393347181161525851207159326540352692753518542485859044373272774481359650345993704140112674472376371911718343891855743107394786139050846306540237407584640853905977661902192847838974599620452188102073931425356692105476459300561874396645922247132911585561097214581907103756887728377966096949093447529397740946802767753377564346484931880516978163438964518057673355301428863277175481847755485602854904039610023270235605407148211294150572757640096365164332979230555634827678996391237911639574375682750678020597948500028646253738913689491421653191982492830505697773704445664930978073873230887240950410404285822589297514899142682136226519668518536232383073487672251794627582673218689373972363790557366193085994141823808412708270934671761998382696313537748499219827071467372328528562963911104223507634073072744140966155309108075661247550079285414227821361842775938941653980744183620576108865369672860392681816309240823590272078977965377547538368264853929988161535302994584956125124992053761243464658116698431288692926601355333749905527253436214022317178569857206647198981144332199800641097409592220446898685435380454387623182668203470121370978276127898437902454288871935756290170618294827826590413685304041692542452512218075790834905673071128625621912001158864175627440029998761922071942472724232297025133515362070709462299902581353356785045768889395627012783412365052861968081589658422361957010298633888119777860807913518127313015092187204554206314459174760720524566618971543767536973020232861940414271234385226199310813038994967022912274894798717108853098524388225617306629805398828159330160548145931477426103796349375234012968572629897094175484354860475382975067364835202657913434875145119113296896116366088963076928049858337557680196562817298014743448727113069285902620214705869981720686147561705705535989502816594651634172270474962586570909719813546468795037731475586220535238961974257622636549784729841347996206451374630623672915101448806848139089298833264433425327185063786165317910177032979573657533911638950903225400113473821573100474725694079493767359670347789345480446492512792219998755623430881575408238570255291788700600039994721512762991024526057130814719466488065779672254315598743936151886156707730958955129386046434125731088233551518120079752206004280054735337052436167393159381054532578961035222750999547287349376679889017333827916661725499215976904715999754905621474834464005624215433075720656437344214353523604645032752648066444200975011457508213725658669309286642767958293315304492017637279410396841581535504779182083247006287547719305861273902190251584150714814569894472679294768316496613373130517972045420918765264408715986099268184810981594677178993107424174389065806756023548598951516575488387193511415010878490147560216072023786940056012279290947715624713662578845889767708454744952160842592110151363755074294626956497797951235758313556505353069253127340148453456120710719640615755208915736870885420187928856476811226946201780065646722251551197575201196872272889069795340157860526297292326788766903212774709253536655341376933075814985436166179656083221913730790483589762875891332874329305225944786751774346212082009663740266932159801657373565057289121033761920266126501049899077230484028500709953794892081616351276075618994532112273253179971596989089246457537412106804912960619123426774099142362001542379222167511504394774470719219103735950107395780204412553257251207864384690479934291558737583894656662636729929667827451648645960729577693606452891170500930986450302349927162976668462617761605766570099196426890553209959435591731950058335127431294709628635134735239522437859481657721248868424485754547300230806800223165083339335737315361092270604747478587583382259394243107775603846300733948485961443483280788860957448599570014396319493172425862244280311923465430875483109066687074051824170856672896211786441718903062993482515045318913167646166864846278207169742703669006216996648652937548601572383223388483664493132925567497349733644904739788877112046350442646471460034730448840926577961756638010819071696293150329141560805075718256311936427140538388210402516792821422915913794597740063009361047251419323946014929974166516358185261949153180841436275122060363462187963659321092688990331945056889210445533629002599152908757489978106085285536628223800037877811402980681096755365190666484020875498553329046293089044087372065268421843942552252810468481451721939749459854619080927305757289969135106493413950938543514016204905370878792823051644702071111789165946618757966249315713954920740527317915745750724260144835420936911538607140631377927821205577562660056494910881790932461776718903366188015333958999524239696949162668791304416387428173943181023712048904375104002591818162815869563775248744123492849009474826476248132559149122826479473528911606268731509431902366499207968642287974388845342278813162707781930550446167546715671556524812072315104536434212622569269245424166912684253621417263588222655696051749686693072386993904411293385713786492735015914406584299587254704133236703726720903935285403243076881356167934562358919595395369592105172212053117802131552270262601182821805827026502762944631343924165725612641890249337161252244814175447170136336203412301815196072609133097221837673081035371241669709917934169582558341706826817918229218353714274047573581694744446211184556933503242495776644163351128816669310451286347626728009109784150318373002399242038834640125652900405554673147303416648030346579198490771691257378974689161406553977781375352263329684519848218371294654613891716578952517342029178982068382191415950133504977964115185957292429584163353647095335299053149732324475029323203570167512986631441032811414840440603888795946228721985210437580492196231070538860989666624073443869949649673727372191540458404891904454352729223932505151930424497893199343716831289634558599363979866659507977001934116708070923131379199238789283085123349830398952760002050806676123460585823848455823120242834149536375425891247892742300868332545151751033614936165434818296091824758054469813333631977498526004737125016299746129442294096430814508468867462742137219854701475098654806555117892969968453244124519565063831229660520434364964223842150684622584696902983230325168399589410316803765923734417647427159000624815666549138584805997897981261585110508961314394271565236779251652768977627717636988434509710225334376016103703804304474175805464622522600630622291331893354480503024867318971352847154498848262511157921804713545808880416150992612208327285227519770903196330853737363396717431143956876711479428664615651761076338604848037996796289118546263753683754331044926019502333885370205779709276912328248842846041598933187536736452355370658006694680836566072635441027528875540516902050081854228663707046080661065002073382736772610183873697151794913421258073893023453870479563128076090576038078823611173109078173021935307438349741126405744397501667794312806588957061419715780777773572188013410254305521359061858292861496194587217688908271128893581577774721736477984803764226904966266677219907887132028916690140517311754041814225159378808471406915148671777346277105288798804142806006883389142784262084374159588470558415284473976539579149483578752000267211896657101872504454197624130021234776958927944090031576629415167966051716434519183348309591155758592629941445549360333649126410938405430643754885026078383326976452764557456382657395427565210566772041588347421630105265876114600657019853296234481721687915889045034558244266048170073009556956088008720876304141521959745477881438542656056841276782312750917575142535781082942965221070315609808158244281189401717056253714574535082611069169215772000569217099157592589257095629432650133758455919642031615132785326689948095632023089811634184545678699695637835861780107435169252989472170054371726231251545289774578115218950404134802222975567568471365653473306171513700666932353613710109108773779769436271317099319409990175066032215170422284192614456296422953498217479794164426473192252899423903907713506755437727336313802098897587320583418634754444502388721108526795104065673702152421814792235948668991656049760342424143466830427744624576998166269925166597264168363665456852044417357285707864975595145389679946545351156486930654399481837162021026937021537331873418198576676881074935922949022338288977798385666563832860451640905131212018847982212182881780929491131949233572750729770742507097459015537962689628297341296585295972914689716681578420782970826040824661281848095318124679013829393819169975177065011535385172702979252746132396169181575072432217605376883224184640341841689353642054727927968084825995729822817979808317410410962227344323256627471391221796633060904857853170822973502492144447401410742406729720745066664262009143063763488744182951865079469961484510090099611759985841021262376939167967556444927879215079523834592923122799256160619979083692435526173341995026079095259872434530040183587664952695149479552203346630397843255402349148884990006679361724104301598588744629785359764804388126804231791913737915516536867820764691642052344349492566900185842152003149366830588757974471860779398065700926976122862458351802118730735355672494377304307646570654625293208415294536392103957168180330807677504320681608284849689664206232719841334464860222397633033084349663067449991399963939152373576837153574624663165586803411893028547659646337193956305697790630732461071809531238774806654587429956205117275225949510950623646870613595764201566301133551554338478850852205950181571185764514977184579255191249777937210702880944467563017585894765198650154365763307757343209531126723129437040388302362920328575501107754482695800526816480199901262051932244103014977098117700847346281238101927684900457926225184473562970838649268043736631092635569017410198496428272972763461898297282675263115909099863895242133342150431745555899959521626325896822339976903188295115750431882250248124550861340521473683248875675027495352993648452142854608703615821791278337832009058944650576021398294017159914770212298404488809769157163220144991353344517489091631237058714015591167224705239661798009224783376757410203515679858214431949222314552212434122180787709685657411963639436344531221113611596627979314888813274468837241487725785348874119152413230744349194813664044885195847169260806839867641429910978598992812333855146306834462479567720513696084709068063964498049072715309093971761602821204520426496345491933713259393100634515003316645200821020379718679876934389138988759948481972759072168493130507412154163196053081868355243893723498479326970973061580332992824884801057843583787813141028241775333353844880865920352117912390098893497590462735759722340279668999776778051645508056344049466643242735433276267121495310866271834105213644020982567970552165168440998302272551972218536330425999685582080165704640041188194320828027836227100905506756201745459871419466241418478103831625198966302305719881509871882844068069723593576783614400175528520655719511485933148945454206834645869950065020415148333284910674660769785852446565930428924628376159969265676140852009520959521071800728238394409676136571834708190298336640706055903093973220277188215930654703304023119238889573423155821310847335228913153892847215615264618753105229115651419830374949785658908056713523450466493739471749423094105839145436305671123813675065500442096473748579824609070482732126916473925233742032962285804159294173055916755852275602270172620474689186212603971204941674003849249800172204595357973627713213540229495622468190171666415538415836135637476659995363684902286288651922828927446733945769700675557635071076822324220797803124887918056473963432990647907228935635184567336871663452293582438296743982236531646512040445910385781464379909047413025012707570281716074559417325926244940231550636681524270148843496234220394439011194701754905674288208533232231701803593423467348474033019683963067564743276590970020282212970199543620675422633921216766272564766375499900029960025255958700803034899344391894334992621836976308052219803637930750820367502910518868279590253343555888782280094092728481444803577234843808401548708414508399409441913467967307158311395288226100857595565153316798578164377005369463487954345520636365332662545772036769309081411556510753545841844557366773574257791979512392117072296252301223095278955423544916940219425511969654586116047296145952094158014394311217911246851463227056273900717179074941031524334611061272036923503309898699376126614930328703210608181934190499625437509363093138234618669956615497182375066701937057647755392751262135180628021758181030045867507634166603802946131095682392420453822092466994319538702913814751038941712083227503745130731532543619971764547525460191145012141761101463808360278314876510921442139369125854686164817560852379874340223724515727506732463793140772263423228296687949730073895134865323108592431772510362495524616737997750894768621094477251190223087737444855974591444210280250456313493849074041067450256892358463864160517512975381366803557860378148392450227973664543265126237763668037723382780837665428291277638303986486900760872845635199665689895793143296714006643670656842016770758475581520018509769993496654510322119133164014308478707898224965859311166763568097485769627315836943738492202430266619917810450251349154554287376220401639043257716848265506057417352728552394295730531639976044876913356726745970136216597701387990696785680402432394403207477634757319357462394177756798073756340446861212074042168927926665219141224809015043905186588628719320657458808272347931144279476814422081477100032861181349170171081010216173059355366169387123272017677933220263123835003348472463281175135679766043221584243786334363919683179854722000511679854335610994290194898093223672406631291983018294454383574545209979104980817594064027196998215407501997954206188908164167797024814939198064520688029712999752878474221770772475401771017027906669249584273999629538348344372346192315382220581061149440029888033663919645113198188184972590600183851051868712616383453073448989329077669560163030381643801584440322815981221656157044695934622201760805758008466214057019397000385440406734010939569831708848819506038199037031486556352206929844828027415249969040218342335714636129986020769499579415792064389104685024936709680040812076863246997596186829446428752399017979453727990007392206704520511085429602385964358262628181512811982649525985425869452990777836158234675503196749970285539217033977895411786822218446846997951621912917461698894570771836070880672880491858861864741549318412576827769717454143032301712501181895631063673034348235832484250514588512292831078885496945985085209310378452201007619293832779254448548199854604844589417812421319282143633124716126205596302265546649273666921800579223433759625899390813840703650281507371729781045802602742609098754150035988548129191263593755141493798602998922876591593425514186456105093799534265529502015868496948274508167436414744523057366851809848234728092780673216294238190333028461505149609110649024923817528070735147180367748678220387821083896449856216127394382395910008573120450414082446357432823414701082624512642512360634413810979905719977345276892696512783550710241495773645873385891034981996361309783305290366313038025052468686639208983353988374890521803444879095273536488918091935889150281232007174183815743238378246648340571055982675021235810092562471545290609601003671009790035374282972758914871580997701452615385180105159056211234251539650346463695797029740603008549565056089257317609068603329307121676636797976425773894172979111059740539887480123096497537223325014444572679595272254227590984309148551167614805904099018289964064033056077081339792332287004994053898024152909230629008439189401667594070895250085547657200565336211106077462285043838118281547798919548309940934887469056522848063950994873879857000753476520244274342304038360683714332186892958995001735377912631882154147142628769451583477816957566734125567887109410717672561604775300278245391185785543381574622476380174254158113925434216490938610592179707439257499898832708017254345968150946328533742943495686321136865449596053798542729890674297485335622088088244013900415776895138918160676227847616082676667150987664855930281623792268225694162749585712784983668356869158311415331271353058029126949896780590458692045684857379632311035342791032556467281574065277901389569016426483608104391398353808847386428950344158512984560516977114981764079361890475662107246719972725028536005168961703036132590274059185173762555574739220897852794665289862904174372966975037317341255486221240877738383962873685036794124559835309741979231960905144287841506444228365751925102432231916204835587854511007912323836498788341896849296545713581436407332807019919841085647118502939836157409469485863429135628204609658803705175555312228143533643380790047580496441780822258894060583001291503540108917776531155972372288627810218962493816459057011090899844446145354204022162835334420662279559904966621075896576125059136111902492144519279078361983463430648870497762864387394130063579850050026904179044898637629678759779858900098651605092814496130328980182988130295533295143562076692410036810470541785008338839274057705708628861256587248056865963933931877921133435989329434763699809226133718185326265155905659194322293633431360675800714731679622120303254450486847459049938455349005506013544677771024956265529304176001117105347195624091805287387662823866147245139235794272232841797091567582894076896553860010935174610366881290117961328061387276959041989887281732235967848484199618196249075121913256723437455038881307456688078803198405992366363539734590237304436271229874639052261344523472859495291376384657803522143199120487278637946145512841345707535226347068539946790835300630367402254384352143397926110583905759559268904847138849364122489415088288185481623068779828727653985135348794091781651017630372107137061774015496633376070621604915935480022900312591914301036033887636296317821057187991860107152649570402832085518435918265537810059594563465738050650723278038083847875445751619746877533417055778023610761656549291497353067224948611312641950679333150202134163621301285278705309955777615646265393703363698066713036993294804885317883870591639381102775555975521806644376551468313665033016609889383369881255384900396612780408246789816990107442394029300195940352724904722357909835431113362890649703299534574407182853141092890800363423079258854336106389630901605748527130239104127192793886477873712622399368698330973265594518849979299001994386882299235626108155150626271788624445294628494164032098309682866452949400762475882198825247440420606544923688058553030387746109851928495902276901734219224047217890163133612576818757600113309231404866048495026631322225901062643884213018566634187038404026425537903112271420877586465563944079694454167412499537257640704157646367754806947606866965071022446975778686415928632320603367523390888079254295255297501451117707945282330940795034991959610811276275092929701391489894470655210466442170031852521531923909913664312373005292243140844572680731632864799162268382776383305939779544620887065403090438854111568668355142231904222889748971506227584007142611120044752329012047787745129486850621015101528094026566194466003519533684013213356318863939546225935325425073821139010265078270304038163404956242641667967211560136198819822934064965524455598234798862563622736589034169321822278262008671197344294454343885497502891911698051649914855383404182635438125018844734612877638693330108382407452084744807499554671423188438195698480775854542557454312422936581266171606158132677756121331327490320789623013771562882530634260386419295199617446874096121076604714844739774754252208950155517530187491112265461172585847116425625272035731162222435243186603029918676373232429248686588208899394939716807167418797961416310139723473411776496516287097905273669615590783430404447397522029232898296568293832302117845133236879750620269146680852890546419983591670014104322147973841457760791459275585285415176637600670349278090318415411766454158471597292445215638513880101108218963773779720821410296523718262743407182468690231001281831019495529501155467037844470597972916577160292075445162412055546519898261062620704223372045046188149752215778879778479680865091893084055960026954868875487736358007658836348994970515542561686279841599597549691234684230323650003369990413969622034093315021646527003680390468369697586455835362803600623979045945708873759227742386443983541927312255751573532754543680590796589482455520085673708189481996839242758442974717446587054930136802886186476236367990050241710826793044623494466533794171827748968750424822331524669378538679034681240807741283469845763007238902781690558335798470762942539561871181638514933897851524723452731674627639549368110731527336419455634511109531835685009430797879161427065604442546776557165962638467543705533155144069675881977248823879698793246477868044653232668028966683522913329208810907988567706310465764487646671405181304367463898775748943253425868131824804356468709988082867034032858887172255445566462562462330097503427449147129599388979741419582552324805804765856083186084974960679803268231082936705467263109512117743850665166071275163949748952526207401787678375258126755369355835502580644701437870460711380843102558809534709468111368179959061711130801401901957137496453536702873944997318852853996921212299780515160210848518329594890797094224494424899539634218763981627903341368561150785622247534572506530744196345600823990871491680658099516214687299238612749868258005248466345991374449896966541197023909022917706578332511687020035626246257146866740460745899570083481642849922026710825817799016636846004060623786850878513989076743784411107089918961539757215886168065393484552262008809026331968238443164828220776585787399345447651552056302254245249655539177196962466765907213516571863270646125682918265686245243926223533644238762429305591289592440964222161299115486433439322418916067812271517356294955160787923091839583805100726932753332157496287121884828112471492338549279673050345803567061632499902863966124960330763105425036421510227419811240265425749928096817479102713950272413737136574903162684170437751768526202603563874970872454776256041602485479141621587734808632955866776729938219903519658933149729991229341179908571653446424156101520836139802339877840861107773893990671534025085729187428218662671169311017988397704599661349060899260675838549786454893409900186840908923283814747844033024269755504083026000862332375384079419072316832518198726233218559586969227921222201143818273160798697902880824325546438569736202078753593551742926478186586925256147590187145415796538177668749240988751398436286873685178362378889948252085231296589314112010814611171703418137969425577459770187025707911091235909524538112646537709811547012233384321634206737790787375048392174492098472508322894175494776733920753118051785886408919057984018299340730610417067080904624223889592463315689808845697671407633606893232980758500223901538132217132801875902931442544656181207385592122044843083500542789735518357558985800364080614443606808059293418353755113661069313897085928111017272694345902126492505531984671573729950738084451845180987791780411660014423339798844868991112254224914187254016230011181822043226166769869919762935422210138332781394051635972925318168544047725070492479058445992818213417142550389367178492261192876425462053553042922845500405661534341498825594381772067305060554230500969335909374546892496027421190006434805691329758494769187208238521287190960116309113179684693829476710503097479396722319294074147089168851090952926708547903707801797258092283086348680180380802301411377421511662716943213899395806382560056252768242362388378766988784653551037910012729195124072913431746081609671932444590665878964738599478846776824155373821798448954241069915884442729576579645504412527736183219347493818723214357027879659132301648376162369166992343092211774751648730387995896768009186411547611447708845316627374826023430869829084137485261860133698583514571701688361353594800969126444797439070030837190583488262388083020467230670229312123021599188847557270676384222428397706150187926726275750899528896038219317237240240807755862210912270569342004257555665522179944360556845032026312085921557688439595850836374319497508098445026603333178697718129989991970625694800677855660672511268061117879449243937930153668007316196425405503122075871013674761722703072509685438239545538470472792155137906915234752009953765121934579580932920476831513860822624628578749968779307102525485187278800207827978464166165259878548008397883226986700129999443466417681526675548215076368495036932918538225168800679486407040632360855367274099481000711363008596926948023489301653613560240529947194403110748446923276214120846831505575977820396337676948632401808146222542737922837170610034520372278801756769219171317947659754321851831406792227090918154454065947447278464699618892065141479938477108855457508995927743809731819492396529129960098482915717699585814752810902823417493078169539784220504278448690056058614374457653900751294143840104578762165839212096046717551799781727838384689323938238135665020663364477676246449264949696508450947780672748615478114110296767064976042302860818981482395504010164600075819394990893738408221310395698105694338559290722690113212286975888363420560643689541005756182352508324162594274139560312776824424106603343439289835220349889948401401525899369496781992064353556051093362480716172541581586688163633429516922602594886271258397271121885547077727612068426886976066781792294455402723228726786665948383433665523909145308782386177075452374518302047834253403182349618069611362224127804001682892755845911418360461800981394288095701224771573694777334990479708150164282548653371439685474982866103292614197518765166187484883935747690918648984199791125205462806960731536323393250517459761007965052091430655139188808942791443134641491988041877326313975265773525344062681351562310371422390042723156207723142704333116639417306623194829266856643522153700122786466605231674732298888700059833548931436013314449123040921029445310143698143776584547984139702712156224232475545701177419907257205604471827793319892042994637030641020162940619823415903663332390959033150234412188078239001063289151702556851551965627060087818086429656888745844206221013504536341506893096389232988741179972306949977724960917082852320375602563120257977484732129197208506362112330075002726525636180043761340689034679122471440572327300237928516508244082312178198194425640804368062348997371608413224365807422767844446310629268683847565154289633101518266996580930232943448752846364872438832970202567230242380730762491821888775507742017109636405001939352756573505007296455341902478083589260865549283321297151906009704861518892426505269863357776903394413407042145587065479227777848325125187398643615966597409727628750009526344347133668438675073900265413377484891284403827502970766698931603570370459299128118235010121293954912866611049453001762746299527630117437420697448764594747039114599002776915176675865804769000673518584372561786373126764062626107162240454361490325474369666398458577249339713681835508739863983357764372972735009364982700108850667652632302598994725624851035443489337946481845372157344731524917425591890376535246596934254179017366674686914858563343567286266223923183718875317317765550494482992157313739966755327606572868656262424665288192356098809476905524488242258746174016304528813277141158737578768903116778597168803507039132198735628741237952429606671925273105039647299892612922329501477384715212830692764996909402140578852007686794514646300085126914981090146651555745865294710271991286088360246174703628399022477372609041813640363206403322451110040615429918428888605666876160013516277099254784596328395349304438811675624039083237580526068555264767626372587204863517155813314961669391122695495099818589638715097120707623614770247226646085053108174923512384565457235959519186447790839585201908544588530044992820252920444470052110983372957300560562544540217078228361236527829818633475667421507838000647813534908454123551234139107640725445665046575734692672418492100914789779868876557085483929069929520164604414802863330582590874289861925812012057625591541247072518826080936703761991555115647329784485840742824652969461949337530642980280007084609977825607536095837831611801220745430652887540034585321767108872815514535182297696716547094116847460153869659051681749939849602386221031544574263316244468951938247265479306178450633938002322500071822507058361573045963780709690362118559316231718417149680934762139220766574754529168337141735621214079367540531006168415301093384865229277185229814102313093455387129439333661909407702795985487824911077420617137279234956478446009284672507871688578437572576220652160777381388425563958420808827366042503568961911763796621245265529510639424658038193056731333771061867148455187716404396969382021936053792450572387346668362372602115953716401541122529466222654384292571650230285831105453582740614635810556748586812277662135571692295361567206400347746024438115503965631099094202644136417656911120421836133546800084482677036308477754238048267972806672831644568960525354502822739636185346822235289142244859288283114057586011323764740277738902745856170792769350679636469277187274478463297686948814409614229056460807643222691318170936453932665285469827404594088116367959383352170619001699125897824613764666043143658550482975303822827710465794719707439788565501036449185194494355938471780683562048369334402762395208145855191470211136966165840944688246229147645361850728890042168473467165331449021188755730959646442498517679036715926885077429564224117567171259024421288448237772503353286454461222076207168422254878563892810924425051556483273816065713525399894794141807375774765629396254943909868506042646253462309671753425880384731885106449313938555489663738497114751684840381671371699944857716204528831356419343262069293942230479097005642148618637160109310218337739859725030844756531206243505971330316300358384421712432896442619419831909813549112170485253655994032055335363814113113895685919727880183361830185679819165691738046670615790848033885849432274159563042120608469933147299665643473831393922941830379207724578265937998066803777126295463846495650404818825571240439799175155849710458205484224851002182628363517145470078945079313009973396484599497515428757642946318661972567137227486976842912183672338083369863989194507297184892722610869480298052064538390385377997285269788641655044067520321743186769286038387341152655794502099015567023633488766734968368081796544864742800717362858196297018215848988299463436180303638071622574556528715414305865025610675445123595009341695744185234892906098639199577646968235991319154228581205745701352530648424307421784158217198086920221742440629304914348751725198039877062538007465325318246287755910774118587412877248640004177854721121493547881310718695082189105784307840020607026272070131023975768138430613146924933324883055849739002969219309471517132644492932589033041113016826320104546224017304007270724747054979505757479390799324154611671532239503145429455787895719057899011711750166117605706802060302900042549894964675980169582671323659342245737251099482645835060304386768847999731558906360619122633510292424782875123630482585982820812795182622380196473996920069033393979637935574671758302356132527205113901444636496989874041315526678057552868676235420309802788699412497115867463071172792109689666407072616574207534356652432151294088259000700799464719577123267970980179499038562016533906905006015763143200063846368201038367278517987641894638350046533698579411713501239566732898491561401639411639121886675609708577219444104489472178276200911246719065337395859482929523042955778318171231614712134897974789916358616269299126107137720605223181421060555687741207978641173361496171186301612851406949608392811933841445364885541130667800532331166873516273239928740090281124608154873601946625767584833531556074337781699838566013349263238783172563119571390782913866453373255202663352479756503125167639608760418379979411351427818149965490061202978492278376320389933371755105869670772962829504505925973125989943569077292301578415114662043730038165217559380287798674784528821121089698524014257421108450452371535515663011132012368324972693685503475984484087912325480177134435347105061251179318967828831327503032398349904531756726493620325451112722532801103042530117612600224523873512798649697820645458911851652571280911232117562216615567960780921107765862419981434092638384497974919634814459714114186331715661979948863280005041050810241313793951828779075021416899821091957185601731434025226377161060906514253708106261540340187732838832503311636001156949433718251077617696779050724882398344232129871058771255216908644916065373834375181155870703284557226366723845197304521906895252621749638733880248295815720448931561090265987744341653036408871113063218774012882059075926751772103412470319915687691593357504862124746512905777014243134946604090304485184708956183618805729814729883844571783266446063105334563457176927038299139203596882267697707760586659005980906557167874324918903302716216680630173273322900421548700294805783319291888765870865449700047137266765228808856859549701773294145984600939091287887637316059021963648986407693636557551903293116946580590365324652057533910469040040777000354579850769187685840337723438975825498612887603763452844382896511631588669026667745099913488217725448733331955295689969038568405540987898253540609007790461668461272335877779643641797950233627983348999370607700148961418036918702822214699191463384075560735218466829679430348842333044308003842013810384402771743069093019746112797407749525474542654217505513538773551362944279694505478108913121800963148634018285696569874520072032341592613253525264035014291509162892666041291449614837490865046064348352707729263562054772862144539044386474093013886901797180601046820987259659723475744297326926560754832758725611042282584527012417979366809871829041941267609327467758979785155665711321081238467558174169509432731376761555325823606665250989378750434969854337660900686796738998036612884690673054755602357619309015124689787695263197383552406831177835187415728209640795526843084297091424310783180217560118188590478504382236015436007026314659114128091852514690003751361899438358658740720087466379882187473264323759295138015605907508792810266835889646803844122067175492271934373314061300497905545982595828176367586448635130200153546663647106576623223776695953623128926518357250219965766339661500483858010453559951577649881549978507514135530934037279497143192156168377780448950013086551388599098073428430270530891122271087562922295961114779186448917715332833937950578516037555731620842631459527860775686536620350243614152215273937730563278688008314276724486116040977830593306750138699807304220698260167722150196812403477737865136208701247650295109551846959840973808641244754843985563961469202364368932408150711922683229511907833367463017619391989059052003365175678604597207570282383732045590316684550797848961480622415285018005268137987209749541961276708887610699024903104574737759824474937504264374455101664688787304467618073487085247772611194496890348631838994474618440911478139668504508273767022208554790771586017430521636015549151328650072178502714284209734221233066912892220713051684869073726428442257503770895146718919749173008526793820163131199361902828967329086775577247030287720543508910669347905368784419630099491806648539513566904700755155490525764152783210459865449910677686516719454387574319202308070601962194054243938209741318250706434931985031639165759167461047932138988978490109915776681841450272530606526167076148165194552971430954213100727041881782129484412286794280499931889967899466352237847676056049305172817532080246505190820039884141977870896840238279792994846015847483235200296856307675452865114659230762328540024231539669838268988316427636964788981047729075559223793810846687540822251806483949917282468043242842118505863777107271707799960157459780843024013090600238772112169169620011600586926515435732407739233885560331313960585432996073193075295736642637705174381464559855295601563829768340749187371313057668438744139875214503894756546209612443036586032123954812318393163925049093090715784424647188007986782676946214900567529011172936279582598096850351740527811112247069639521704277419343672124331065786320482429019850503645049646618019900481165758264013008353573447154033298942328039300469729798857450010316711908044910491755318092645916453953458430325616907021716663128727724670974958879789704018389488283409798821550654590986983387137105045083066098497577372561087323410926943684997892526937600186015964980741949740612584479538447774260907281474193297433212592296850546669873105712210589753662016986385593379875071736999802923589549383561510724731829944737246368333144252887825422104037090012380013960362162999520351964969737549103776887662884976082115217503336303663565677044183345874866627747219490105530133112528298578865179228644875156587667988145946188136030068815079654273287415311627638886088492941118365718665613128955473213468390414637478219086113869678112687631024513683222417472173445596467595003503457031730723337648191901592564791896624447089189553720197872608659123417383634975848739683807530709877038103233984637992807573224513923485591795979672386503390150082728903546281565317133257548054560370842090984240568998906526240091602992781116596235804517576915305293954159462786493702024481223787349065094239731241835809889198930310109125469648954287636166508622865712995252670805588176830994596025377579751433707600461039906681149054181084403505852293493937721224032682026818391753691568198014307182526772138561149131462134606258324462274910116308668572738138734062273093432668533480239659709484361027752647868048259266417997222611398707063558181761470309791250715585290679637613507028513959732876953328810622840062496879919238735993091168986971982627976369268122138153434895420452965581705877425418749108490773609292191277457295989802969136247232017635449743101678911716523056898954722577635599843132334866141039426329071319821088986468822601379698471139374100284307188676906909210330047206474364814524556150182189637677216745926297878189409828071253696826103522580799786131273805416235439355142166564036360605912637306291776120601117978715488728389684417879864358152892357800887418945285528570370230543121637773288776277509676393894201092529486497917574063896549795024477166579201815132899471118594453309869169961584485697031781619761331941857438565029514072996233853501482305113961899425789878711071912977581138560940620398013876377591331335170190732059910023304489850221956988838323955875212572470398238393699770149751191269325914366091372369437255372004358522276310527595030963410716234522048709904966782693997076278223148329802969938802635674296968523672270707376592846026522936007186529359943103942026723496866841011189460269441857926167083752898110955424659910650686919360481003677065806627836556517224637062840966273438692570608222715335542920732198802737412490801328204949909905037691132514808041130353722560031602865523113294955017797235091375722442801751556989877661407684662129488510251948392811553608793273077034004489722181197041041421042004991201023771926494448511043988301950803820842329205147870029484363078259718798975713797350163148389211474257625428369346071497333265231257206192163824565616190147546559532251385621707477042746519593818189995817663074760980070965635771013967768430193934908339350752486774258438035248373428894846391113416623187270330783124686651801440087991373468534314667872828256649085756910496531474082860503599603101300708713759658411982302837285578587473666690329565172597551648081163469227284696695470806528503640484868786373762276343458978382408956585604392318915698255890532032279674100876660370133718036872109364732678231251631228025050194076572599740333607910770291654696772723199736124456401956993909301286353124602551720552127719352848542928401015028839547087639835773367988038854790249802066695305690747834003560946353634839567857133963737516300371054717570305779093302027255907812443434012634637968900913262052710351574392215957868191280680509570520865884946395402187210987981351565119190366776501741221106484237379302138114507236250320616371516896549662249250697363189329127783079395285271834619837638270124413787632818840382830279384500564407856025280929705058203192420823025180597753713448685673701360252245301131460496132236096091761766781231663466731994914532752051570294215840999928149483851496017112400202863214158669777248476345671657313190754701290126614154348421034810913038237261169965476091013982835683469724835815477535676903700058220447366940698019672348347490817645240016032940408153234395795341648042543367348691565764470297712218668403496341855694246600245993935594990349316363432992719398021745973676999398328630418577685838969658944418655267334097064601896646731468811852804547475161280777374883518883392727347148233638688232176469347928198222964214223556930676196732543014575941707565479054695455939953220356225885935111388014103453126158492991838054172255350478969968719560339757492446618272368729415636856047822424231354083566702410455358228911638821754382752251965050324650854648063226551983594676722285413374011137077058452762133768969843103519271205337120727583977499146529026302394362358356282260381685101831512262252457603767798736538402570216388509102651085368389630043094567341933995903885234882610801897433821668891147603311648560359461240697786650915160504040816032498525552764963380257023878716683503184761703580435490869673907871602873386714768984501040998433689614384223833082179594614031887907103856848146162004689050537502909562488069553756623307233097635669806504738954359060831178930657228578458487430329262346946847836691923172939109863028890689185652318477316749171170159925321730342418902253284027264695278297088752891175726624875446297981748510883255805518828663851615532045602732438408336267810353745634551769575588430466085636568849140161297162209870614511351678467810299501473552189018864947420147098538321721456718946243234472773827108174882825161818086895564955808119173357868494458961824840467454811312037206387951393330113611659692597310327145356998423386157594933643889567874859722425247521661679271884690291273020763131936739731799850462329978492547575519951580027621326642124222117537409233613532060568839678407902279357496312888608355801503671460515180176762591074770457924095984013466182494402363869166621715834487920088470718257201267108866209364659856911397614308802864833492905909349034074322215162983459143398092058608831414956334339788497985316363283205346549281042457644429812091474583898988096279183742816939353294552860548763868000478797932673500855711955574104694145078675414474845035749738964560702312494758809638047225524170673416114200960821206034911083712779496905577565826442926964585509456445330914106869427680201839452288555188117990998630674465555930903539176525208809436332013178682480351053038040196633063996706187840831659346408927760217737596660189321475400511329444498204764125437890118109858472696291515205602700971532464746359445875531593939479168426810236538606236737357298134966212291282849089372256882315921735077380726349474089841223500278227647660350354447710582900292687712421258429439856954751351935676238281977555047538535446995840402522543338591533745172954420751507370870996965214986824195409874074155178290800454365722586753933296713907227815457756628679422972043886968380058547545768852605350159042979796397657895993662494026956712039318094420706799172580395447153681579315169038895850815537204073965604099287880508384532976633183626936568506456966287981181041632096655528647730483619917857974005870944075964073069656761343766642129539420638823410014151649843799743740911065359606074232935694509968758499857871193470880945952046856246406547741198440287504343513923436084735180765941773422689788664813082027746322415962089821025768769886866171625686621909503677917659354749820957974657221274211849428784191870935611533844779406593839987299388879349224931163188550929653008184940772189814304450694288948789017867498415324634369767732954182230612644346176515743427915975666568751937320858067089466375395879820739125628116020563892521480399375007112332345853906786547693588635158362449940791562676980048310853767312339580999094251079664647929316357806966116421464592579661337523072926083358419249647314768876527190342045500720923939510296488367434478297577037857788310016767413444350409726206903849027908419023660459538034637468137773461216300831664389806316135698793075743431394655257957686626469278362977523211482100275726300253575618872010487266858746495704994011566388101090748901414623826266097024401258468668023654735885362238162719567106043584865433681246174438668318648368251219545046969240188659995247781252525509317203475862643344778573845905770751454348678184993204969412541751319647654959879983925511832289287489941833965738394897832398250416586854028243635582834930651089315629494737204214541808642152663829083880294301850199017555586726944140817795033873256968556939866472747657151967461212129113377860948554223833663023982416809517660624657558009498543964764795615189838205138213559964657828190431497196542744335652111773766910929377544425126888808855382292458887929638106778345135680468966354423835579348298426613101696863105991027010927630242958609081696159604350086397136244856848828732653760901837432136785432061650042412642209371603231679979298091498675530156121332588848843591941335041918274533591215452309891471902669612994893941511810848784270598498000684636978253801394421918930606473211099767943639710637477726322439990234476889084850957980310246954401208711919421302011566526050906986774895317797244759265321666053880541602782773218733766498365571481796709459221336830036989337765383373320447368826661948158512810452164878556595574529241253879110012319083414389824601313367661278268551680741113055454646068369220878919932482263255020737164737858902416468288240337156025578752364461274082863803566031240317854245176207146262622439798120562543787658872111916498375291619426900730364485044233448191453484105908457130020054822898939779224310107218475970312219479935997479320832660644790329180487396181120278183729112114660652489828537061385932873804857585345798934528180779388402997332027436252698499409593087990141158583313562571586220028133484541655656114106555518316162493778195926148974898358876594998626556964944124379085851032308873530304762676173538928917129241413750408118158362702554237807098036940342169790109049251174806558994798673138524252078690431886607163218075232504537812358452876937353383827165215661453418151205500241153549623435570425164154314319777573756316753382066220508581307238576719334603067830055950817853389393496277827478601550296126195587410093011492175545717429872884807315157077829216997642296445345939036606007855455394505270205900464899772657392749763439414603949654271809538249976673474065321224504106784438577734915836997697940524193069400481976577049526730206571823868383209332663528247748737290239597420580275125934092902454535638805089190184832807454948426370434068916220211763794284297480400821719177553819436517281043183090839748623585858897159902311892702734660558427882635880202563547029476251885597080755193399841257345209620321313554119565012854885656981171128389717414879973138860490322440241554157512740586033616691611526665295679303880472529114336330803397555859505063504754256689211295900379164182324289639700851963773242867144949071245821533993497649631249891219682810958063444572430377523279067941441933668589076544424775731872520745437701759861700866934411639106431235732940785697021400134585998712813653730515592683830909149106230518139482917087461480671820173382388101803122236741377065178042718239217175541399655857463355413847766355154917764966581808321905912181227653760688917262108474951073350692563598979245696260291927496899014758022284551142623343852963072579028673865630563868778217493631419727169421839558349959144266785877502377760942146541494316224385902385464711536179384428907868166303276357993978236161025558295762048371990951780344661778638834150934480072984039507560542499621649718952813049072973757367178414305355433006856074647696102516040947622388823743063530176652503216266006611498828951778143604549324638137065604686599123918420965469825738851966362680856132582490671955620726632361139115188098039241347095054631181810195978645463895823477649894275309114502624998491850519201173423676597376034681098621084020939868724133362614895873851581279517206525148932327258110271195099326601607040802640321564559106992502305735954005479145219166089960938482567323389638174678405365411049680992829161754798198077333877819026224780323235274608143237142090358505156937638161862312754493349635945229943752659131567502499730751034220818373769565221601268199363062680488280230670813656229646021811764191315597086527091604966297903322939440422574610696327198689591364280909492885469899528909422718202864998601111734629094158165921947078667867414812351511224886656737034205182820699957311071562187461202321202580319502841806906128627532789367064405179114429866494590505286570871116152407202971283200120456615450743626850857891764609050104882279887424555254593896982298059944397403488103297159801285781509280091966399096620756219245830770308818546556203813702218429788729733982674150492113847492122186395659417281036118610910658024825669648435155241934473018853660208916319006964127582064326659003716469495578817650716321140852244436037076040580431849864865547120727134445489348788495907996842148296021509675483338499485990789465337606992912361011245625953626597225212721084955167910767598328598602331135411241670183936799954180177004831385215573247679041971457227040432022721393312685490931556674352476425100520589567252701436380638428072200952356802468472743054974869662081703744890088679174166134950381625435993729176147738498018064364060442780218088952029991535289938361894229432753367247798393656426852667543287440200032641940443742236833131943765682785190407141949650005105059409403919526298074732393928609507982812022520707472806162984007709225094947567366789162177254466516272059608812571115355834151257731793788083862908526789365342833608920917399180006008108817263193893389028886087979529357429178113221564815431201284009915287544624407966561191996317224222228153325572113863680510100398701259474241761577646097064159160714861334042738193508718923636078403463106657748404398013828082444961470542543282828826419231186822296428727638352139240182413610140797874884490555634989106875909670884740666415725948641661163778252594470429201601787795038000269414233915028958389337981517489884071694546157534185250970557178457382376683908120032471087215639490407934632973446802789066359131831704242395740405478562197747607195559229836566645591750511294616793332506025683396994318758831318367057616787399283334061812269195865207345954246631301248419919631348809740051007346462179439206231756978750225368537651783670930730422771639392292954216345788574883561461583022203028720650829835436895577174631964746741408077228652240537451475846116837300761689932292499639224966804372662309259739887616260317103297041355243987723822741500479366605470732695326021064661768135159073419134612440759326500488962848391817989574902725260622808232838342328960568350599396571953542515023101749204188946690147760665819496688227748731279705782743885111477993422038484112372464366894682653283299392830699405728531819475550861982422877806004109804618264820092568066677715809189396767805176070723999527688491234510051782309968631623991729427459452755117537014027671396098262955570664070161360013510243485087892235433363834970340215009915697617767261226123467985328597109113901050599277970072852126789911860007666499264954774272892333951347665415609616721520019818346557718115827868126417663884698451717215562109798948426470652141136733825107703242592104771783116482814282016632090993559526694415473873661772615682445736351918514565380421105845379159203667385220591816966112678790862144308384343466364878212615412682458640598665085948052732602434059135602650437524947109508044040576070355411804485814361583187630346224803163746401509026180151390655320628382135562310284938022763875754077157199750376423263208745625455042893386618358512100733816211688685491672423944020690299950374942658310592269427948577306130064639973014804004998262604730948736373971850038833111764594928385260507303738051789266248412503999957687842541943881292071499441096410014120598323166265296791262676007130929005004222693970567437279097153746735841536040760128157923062694458261783185228440211933007443516017520431560453091484832780315542283719187416658529152857537631806668132365086168843427385362262042516158919564453266880055020234321936855271308908183137204248414110213623286423276976988826072726324730967350119880974990543008972993902939954058660417482624449900282123333621598280026772266591990934663322887990305755108631885599360488059223236070974534510237970705243802637384926343692714393579016111077270856921271772344966760497611799015187819113932217582111987116762770652362471920340361404712677455334970393294868489352615361312247435274820636834737203583763453257555540112178832525929703106550972019410235917610209916123281634374676633910840739880347150131480045737444787582486347361732708840241824702339742315059187833133973512125399089510568697426528220199949943423634987370689355451077469950132426575702031397014471042998699602896246546258194875744879223857382174331370123531622727025426538365614299646977340296117757332569463578646033937312881861616934451211957410130011811812493168131128132404830399331156305739387416825870057783744799881636430958279215364044427211447965077966374980501886352547604516866654724904726719980850089305090849822823724492338290950266737046917506363651689014879271279105898876705664478075038700241668007460145411522202163212383807592586025027545039060061542573683416765000111173104513174926743501473285465400342045269031379844728026269864313745367546503690299576417502697771633343827413544239962426788615718282660229907068077386221688289027560421429392143835935654213304778871965965254850070896616398845807421791249548155874128678743244369314797406202787723493758190104434548135381238679625803180638906688748687372077754456782610865770980955363032970176432689077812527807994560927234777444109954878753977077831421661433991358664118092999389399499751198718484954574795065939799100803538357163098978349025115084561815325356852276345405962182022277935069652777171242872895231798747938809596118492225605227490768468121209334424070434301328663115703360785787553687013452039756040536575672947985277932914405304091109841927641778539892196598682155968854650367024770855082058805052831381278081320874109919804176288970997944380828607682966398238699295970245854335537322613521297681734053193257597912795141131606560933543054354004818135817509781650746761179759329490406447572860682288391547427176808938126500281058771715958152831506771036706910725977835635872670543015525729572959747979940906577014608292367350169716506433344463794867196962072553653967231691420802864325652355805780928807014589269095807365391710001909682273886757273132500237258415322855978346341720600375184722171422222317783979628722460919786870597602535147073534000283381444763011380613922482773076649333807679985458532549977261592725435371352786021035593448648880334154122310299056688320173298148129430490531796310216137378451179801405279328188591105335436712143925106567716146300823934713906164237408921392630838982927910312340278079499956210849628510275612206058543316748148831625847263833669886823615120471805058553971303335185499013722184765816319433901440376309765168744208917896641529510095565138985886479028527929391937645315320702847496241325870772733388976303580205522820989484145592885634353475569395609609826829944510530345940685430419955131682399018923288760899874269046604591224521098318221009571508527646322463248281393444812200898433772814811567860924815980629009217994419434094240832748931137467887206860191694453063129985049462023208957079893351641427149123650915410352498109709644765273513711443769556697075524465575242125043289775288052250756398318067106173971690226121799272173668226838684378362881441683054751840669737230935804753914575469779616650782356577063291644739652283018033041836800759557267132150838551850466242063168882434678298302487555871561228932272388884316262965555486133970866338270378878912417769410009162066018408809611538442513816183647620202718281351090524892868511205774003860276723633064392477967132761313735429862596777482111183124969204972527009115168110883958095198421327282795230470889637541362293836167956208548948224613909909120736397418712903915791751990660735659711953976126280922817762489803111700835213704930948235859289187170469244089586908093991278585626722987524494753814173987480968985729420078928044818157881396753765470467482331703123100666757584291066798187488526507871609870797212413870338160634416903219161452020356183677867323836265303283300003654933462509043511036021399299585013893845541586767148954829948523289243629697227311255106128326274770272702162987682323584094044023191797002546086966689280510044524003853547315423348539618887009353784412318160806501595156234880482442244814190263371001512533163378824207532471045742775145507628069881742059115634194120233343373521428158124477303300777129112722708143103602837832582295370149250763997215096588693496958950903818463364350907315756510176916361647047937051351629311315127937658745976314407366172954872206885627315056603664966529951636127783719092840027275947753399707592919060418965011452139557889984082081082988059564178028499418220138750654620818473828391632116596569365671100141518089548766929042041711353823309081081547723048492868864690636250240737281877425581261105456880885556157225213209136482999126271574065454910796729405636674351620714270586840954648483930416863882751675865242143069188840890301259330746444746428369732116861147140777750206052831755888362422371444761706284681785291147779287420620656034062754639456086800273099494359862202895073925021077064606440320817501214393502544814623848803800954054516140690589481873223446326715064466869212910185121827701484259840528938341171193836954396241424473994971486304856089471620411937808774140069011981515341394599850931214710112588187270177694776864391685202028934612858468067361246456733490175972182326469691683070632140008698547556165889378737685587599045311062582451968393125871502976420507437759941488344233786974635967770127478512861386998160926591311286357786147460467150843096273430811098451454596700171286817707412829477209729345914888481009189990282925871633546732735292139382279327829056705762256006746058125671014455394795972860577426221636057348621504898771496250831019727107842722174140480281554481208425124666179658969348868584260617489357848802144706040963522254369806371794944085751772799646394831441719921843800069365943003918394375416927065478625345616640831920725857746160002502872930549973547675049490355576525995621600276333738866133599344326314570773957819730570895467747204437880451845244445649383388995895113422386412363752991092744216488587913558378752433556310570655850562442631891640969250060755684881346829591043058966091807045213602608239356564692348368337721618131002580046439135313022933961726568784617171083805860248157747593794431419558908510444895893089753826444727793951934874925750313789954183522827644316525371336894204445005536510473749540582268099632636416519104087906922744275377815943861899907494665467213857825735197767195308823274756056406396935899707534161636831482753103183735838097835732401874025307296988887693875966404890862491519934154265197011901859812625983917763090115740120717929372714012441937281583427190837142054592706865388209205642367485522723262548471596575686815306771723771843733141606643124669330812727779669533173680217543953000170105040342487886248925736495004853861473024186307946072913548159537508290845620785127654858973668027758759013765557050750481627019722884976971940953304088462385808908646149825141929123336656333260275099101981804027250128405331868070140527282898627356396997818911731688805390496456310650423832717891440476907395695058653637964228862056878743866829090961474633409689172926645282068007963715109512400206712247189299763561694307196958370731686126005455060310309351072730649287484780850421687903062249756368636764585062271961840618988203788699742966900388906835048354453922435574225783857894344086140391658597000790808630607231111314546448771744300098500008392956794429255452787600758981354271726302633947589554133835917275036045368069819524809872143048930466629498872372605692641009123355479091666591113209344704523978164059357851644139590563761693899382281039017616465437832637235867572978220714680812913243411129922633641512455223150708789235835400959695756711591466623506137224087256612560156471789728156212272919693010200724027707613800665161202737979355166047142956121187353116855682090383207605100985042687566883087490586734985499143459911301084755410676222135334659002837183854018973471836718182704600378844644209985107554100532511259809965804727156635326419048636235874912754965190889373385302047316245026948915677220905989868600669480479398597800457405833066290188817800599127551350640476703896498078626787753163653348506173676904621413391525748465340408290980145704809243022383600470716587752124028019798180965948154483207797430215768185403021528281780502924223356634985687935312739454211222060494114952495307518957734180345927567291264552284332306034311287427412053361107465062682892890696472597909232787875338747776060783568351820026962590758407674136673442196584052086125547628929180957336371161370779863955287043976701433122257740370416233649879922644278385537055800358184332378500994205724796362283970818125293388173006471544362983826705921553318953562254745424869506626756597815858038285000031777651057313996695377404639855394292765218733107252571510852638205803074853771276048229412824045956699188029673815742034576190347827402867775438717567591529507737206703249807943549771193778274782484499925601321808326066163983885741496954709295518008803985731637262173408472109994703424384031801082101782472282996432606576769552152128604035764041046388849974707011315374049519348522963913088618856638483673883399269686971115998447305015131022503861373806089320229847626485147463604412945952500642980253880902211442184259680288291025364840110219052893944027806424481773302329168288279913774277103363951759516890558247867707841434361558946585535223759467788002091566060520161928774631094673392742420977490531377437335619879194748808535182776495219422499697087999885060899393502610558787224787967632373634902532776362006881762767990446724405585308918429675045120976343269836680960162365047327584431586235271320987629205141680865021871769599015806229540226508286041465237783837774480186932888812915615020034941592150598374300342956544369420668872429489834541210635052842226196109296551592008898065898704839251253593424669299255794102440801588756473956085330879139066396596150946000781805557662692805905604246564616127582513777328374427976823702763638881517761042768002034424926215982780956772457926954779387341854270978211433748796795876894294373028471518716073188985026209172042850001669596770577706178911677533938967041750573531741136848719871498076557978642234585874112432381568030765327996623795222720562243995346851836435928250852933531784462794750302792774166187859143325134375528090493017202107751714457208292489781721180978201345103395825606594827811862062790620875684611765693615807001081098907615108735869298935936499788371426284118851162440361961438270262363573454910703358198213501843729188534546180624936136263426347754929201319528091637644118293347089119199593293148225206650068122917187669249900734784278991387865202645465393630646549275537988695272898362486248144142463331150515826390644372210549089482205672322530001264063097206371712521396390896799994382353812091728039230754679505708289485393263633565736136379872228427672335344158277642320137717412334310072838263447750928794096793727474417547718808451078666965477218600222363993863344113458963658515761932190377063551284467210644584846923571669113054313846859144986335547556535292011744841215671122386991531215090511135065374654490476207596093297786170372703602058353845306060708393719478264183218794468809084892234330492258733116661189891686844954120666223179583535236837913704062227752805480566173924899116120871208612457344155403102160855760947390219615184754745485502485730325527136631519108049929571167746513259354931165802471550188938600186701864950628032646752508099850414004853962854886614354877043612739192818357055163710855127005016126250137736084778175096496092718615300960701116452857094701790000870862566710156976877045713389060669104406896404733479343711263802360598702907854763460029683554254452921865134853629440848923079148041756696102639512459124126803549522418525791333466856972527230505132754408661132892548993847159098135118171454677728255619471181404736258112246425825006552904005022944801839183405569958997616576983902733145574514506787391331412872126770495171321141618558786328336455909932404817841755467644587774416110092816163782128680388059722724100976308798534106604080714993755491171580175357514660917441586049984576144837574085022581383810127533324190636687365596664924991111507498212912447291073092495915296083416569890019584386621887254910164740127668529723775572876978470567057418252925330777734917124792552631417172205405256191157410824357784597699128917801418357658299605334949648194088871107743399982263459085445549117302916360860934343104764981630451450019086870772760810742690111160798285565934408085355620001277148860282886096829753586400431794309826972637320172747696899632698473186919325504222535954939583080972662890568319374207220395735553436828115159283684041092239458912088376808455865041208535981908828370560293157883243484451674493664242154822020821003536086235897660599881567330378309318673944022906886240060966470208031367197756066910781412445114172173728186767525044563525122438034286161012491268097937655310029279383594097201774443963060337967250126348905694881665661349813190457656506385575127992217053885669664489689919711244411672470870746267704220874071715316884923650068890096946046778642818201329326259033015140158040944405317620205565864602076164843781790171530444983596937471297950711257053723299246908112098051960896571576679953288743734455130629936559984384757247710725833930775098707797096912330478573416804029012785418992765644687794543776921858736159183236757330552254348563693255037458383586981390361360961849375444370708263391734652054123215594098257927279099806714331463643753940342780208233041768499072780785546205987243832957065194784441458198083776923986600661206632293689400984303618468409194291598590308909291627207683467177173694088044977576834482770297004448215348361136297849188874811331387441949063873231466343525151918023998708935378256830797665477806086772720083669109952432034542551035264952460577573659137502527860878001922122234783293793747689234133228768138641704345392676984369418317849166952297626444204858069121720480928083875464804072711601767297095108766498618072529158955580617406596148939492117632080480622091871368692910245608589059703609187295832308193766912890105385720487295342954421506393770686249252088423125125623178242560966700806791634484287748664702683331201451369370590379023453539967387883059747368053603018407241131743643121553001535545595282208005984494740830109886352962487965159897261414607596003040412723108801884873908882299296484230350624004882710415842086624303670003888008162983023884144364814274569620854169946383256342763285937078286804341761880413060291450975006310302918745807521037496598209882069980658966380276872328076652266417405352539845503614739408069227837257445851997724372915749340636588589277987234613333367700585828710060773310486290622000533457475719109911724226244860018790043549694572592841260570672038803582645752152594045646496281715567588429136790226938707558165031071003681891489884022967973837216515947156198472363489332989078864148878495814461283063852528030374951805310692180243450687417546899836250808486464694996610310666488376359281072722006627482499838746309922356535514397478726850492552517004758013171982009630261920887185821457732777257060250474522316105450984547541940694564780422070229001096542763785891583245853493673846793628193652312493687531337348869487849302653502728296202144634011175085524354600203079470404551160741534754678112954814011482880452342009484226224746035974901634051912026518922393675895396953121541317308862633932727528402589330107769557907618381409867864619837987810519292355969720981156792060498026512122065306025965280155126874966741943465265002715488081654612815962989394843036974688573501561752870484503052449173991519602181517516671823285362054507719975011116684531334061574786486617197945149699181208235257216265612319608467654332575102287656926033604329705728117352674309363704987128477929083506826546890030967855908651869589351463610137055985563658055821245492365788922877520647558976084723256441474706557512756302324230225103969781994195355087377063247582600522592233324211265937445685149583610281068624351567922593260309647852968854294428418813060013302423565217849801323545074414357400863256111723591205756988900002466373873833144730912585636020392117255636232344962114904400706186174345555400640795272626970736564357541665669792658516390299357837623551059254717292127944158864769769811022837688542217687774749836868197893270842679374623334843345129570145067094602548605897175203654639576325525011356380498072370992322851948670187435517171931089540365428589199620620733657317641707704023333236703698272667819049989570253269483440545104432533756005581256889817325501959616075458720748735465385100694850673072772920478582149080733720361739072978805224067023943259347606246541523053250160376851474865509399994322195037898299939359270743510092086861178518515762326531830709900381354980281163450296990539441267034738682390780247691865390485084592767420059954750589211590528612383044456196002249020350317479507894213311329291427733250814536753079309887756872774788887511701715199980801038276374401905799957683710968701692549618426570007523144971315284668884572164858255817023003051032575942168914299873600842175746231568030090002189745131498445882868740625352433025217052710058307872999911894124750464621750379944355530601329697156987041843951573052876514619179971129199201140213127235068052662776165498112731158607885005807854201703722386781104213513523545966696410318229939770710541815880480689570059549126561411374476895073092884889497195329898077252148059256968103143652188919374923908020080200452641539139572814958185140051252797054009117264905402505524489205394473467997788208420968946973025598227101258169495722325566358925723901275219099293939727443280309639323385433225386232683329749639207424794872155972112263504480494059283649378878700372097305859312494401760175460667139310908858292403872559347189662272265229598592245603785441569155260656106436078567412579932454306729490819565197040278754202555423866237974892088159727886107849726996112981950080850958151513846618347309318244148260012895814593477427452279343411549644241026585958936111463544858083573144874987911285160678017365386809177399865288011951486476908268593117946813364547572903216710412843326963208455587428965089312776159832979876422910550571941942356394284747058098928497922244178461539183054255209868805392638938322723259053248608064260282307314517606563037059697637412593174286469734527141207414724427021846036937780788572622539678436875717724119215868414513974908840880148869172078963426441987085547047262811353276812767595648136223010840139807239714091703686883720719621325101198212306719646581249117952234942257912783968670215250525885010196412265032805814985309718899408399636095186207366368649196856245346487226242730951756119380802166811418091538539740776553278836415635205218595646461678167508333319083633193623042066267612417858763801044694275011036338111119642081575205184222905376810534950875525110474331690442419674329896979756041620547459422769747496406182561738888322186068673053521567802805147399785458634224604492659045555534156118855220404126997187999038608918674410056254713783732644456699277023504674610187530155765566178787543743626384645128709974880396207336935683574430976589647029973868418016998567177285303709014373300769945760055580058608755929322451642649965819121424082975591796239631556055366790717342384661031527768722996688963173772067334065550852403816967240131874786513729513380044396542192989678116540424769242051879259261195341983104949877839959441419374128869551825564562112867061915631688171036604514716392824736548055861578274197682289546036293904504023343352668817726575986532095293473605713032475302531471212232001399667207820265114027158828030091823603747297500694890839794083909199955390759704879941945444293994124737258630390781400042807923975979126325651353706168475284240461385728798330161150987528545210565115201167724866572321152829001714289971460714938128683700880451380847945475167636960016539179986529939277237371420988525766047350679324025378809037312809907781372737051699654377657675420909894205053231571805401660469121978258555893896255800439931689427403202544865303498916298346451747084985536195004277630350099237040175215885490485117533368189259874101521611535817029043768219391557745301083859007289477782047782292243190397103516729498849323763612560632710043637749388587453853622318511085731779194691482432390991479912996942238202936568252782593723394723282889395230821656945358625239455984434547318946860753378817057646356236260851274623756883756595963350226872391273861202900133968357678264050925388191880154164148178554190435057977499914858571707229026339231890786384480626546236127714551218011295278836993403587998885673777224071598369690670485952547752034220270230155843563243515085669754050194278341230028868892814087915960438721906579381557431633206298293193840119468732324629038274327635541045132212869235217089563185515865781242341459651740241415589077173489889291221746254772194448296682890442468707515389300738388235142375288389455285774332713844289830051443995605072414257317054033474389835875645507010478022261158479007821278804280528380625336991496719396954250392780570670585959954043650372640754946144045493674397708396786126309786007939265637452255407298880160742805502317959865475412600034035030501843181992091585976759749096614260408777836973517789375186961372630106847191306660742255193227780385077457749764484963907662567326099751505113282007750223495965483623877247234896746997722438601855349547941930019565815136661107355558974312701258136918477954836777916566035445686115705704581233625395954529538080216696443284962624663200851139009503677896210447158846198517973720109032727568432021393324435857894802297045316937905670108845180278185947118695894603837928742322196666398039050431704643862530866077488438492161245345189863092825379154116208658106940835158031634019565916823998841102830482517100008828164663881592602606047106098090652971210656828565620261636871525079875339157243837708141983689222870549077767452017085640804793595169586890098198748018883980347083717605678665672980830875609478976416402567941272764995400791430016532139022274358281249661847625146120303681389265953554949640598181491474217633251441649472408623962751995279543779224296432946158391673037915867529744593257176344353547198199203928567822775730413294782994655791191775362591843459139772644900083263885346558084535626119065382246254996263786452413270719342570726818241423062980310411809328914642338714296150876582182673088279731997495756163490193102373453418272041708279460401900321102297918173068089489900921666344376168566944838201455624556207277087934865579788098480652561493249345137299024336997836058938664298020718787721646716319614729138343989731150238716972786173229523362331535243884070563452110950358664805510069046636341536950362004277713841062862376259854516032361619463266437423226240486925520300017105751818334590230947292542748210796576244058340989123343165139645945224697673400672313629977914438350716404968188629413591269656055424292147330027352203181592575463527435764686471620159916814052542006375409558147905866356469182934713334842671273389484391763746171478469813310440334261015325526787001025595253113239477816561426322502245470827770778129372930967721645804909215136346396206924839414143091231667229932094887229680436576418756103700076901876160040973809599219208859830382378929179687032825040879772013939533973694009985651560926823734819168787106139630942824139942428229529283731220636928568958872557184898971505980315627605386203538287956040790305605199288420876883109188495528007322893663181371488640735957904332799717827440951095643358123656843027393352450729500818521418111595099114573858545349775533509818978494844784902953927639350378380813278103247334968081770184807257852508443524145887313990459397868809992441462520598543559966365968644659626377914432666472268818173656971258830830488704523527165860577898193930157625354445302369679672389832884584049007898530666722197108114341612254607355060511438389713117772708713017031409673099332451967908965768260696173826504971055943904860679023108324722637384228298165889614030913591921248713435521936359454656431696290571050830529894121654566787156135402959528152596983007869382662702498398933819503857116243582636653181065073047480881345712652641858671609878394854990702904872633998247991960640389601576939857924955403748932412361973679351673426110523647016883577599288387829243627677040773066188250431196711307277101503990054295876369310889487320827402973463589896317825503817761657969418628803579000934027193177751503539158614441915191596982357065206891843708686869841750749420012391225831190839202597849037119047070797552465586349478105838635478554178845173461414105322259851357098991984546461603707382453807429275556138078456048520843621488448531890383561214569497357149124978622664294696962731743151277110050532681263468036773502438211767816222859077084772900975896815075676706289342080661910858855395410137043093988092192806491933056106239286385845516754734628346556704532532983924925531308004897061156029181020795600705343557864227853857432717612676033080681918191175026304912827284278236470161448018448851411101973672487270084969871599958245988354937214073893985754403930293695826807150594483287916256528709873466035971215699096615767448324526215658983587448666864887148188661689168883163352800456877712959363587244542825636933702189435329337659515982127301124667396802497084850449198598101335032348385171581976546358021820678094507958823887839023657588091543300706994093308993513827718240833742388933110753513481421428256180911930529177995831612816509389933503518720825484350517956203600526433492504111850607879093599159867268474200858401824151639284923393920886258599075487557543273676469358447739170080606299958323131440677578399203317298935635208623050591631614369743796733956986431590524720068409591190297529632084855100994327662822863322001272457985891650459442464443149478949817128309777403266129279220751792446665865209470047952914107976258730582891917620176940929591096261988385616562093455332895367435240355794462211055915084460021955439242616004812486171737595762892675205081956060369132372129539121618352931515702323620221573143381050518730255905308987405012515274857444544179548528828138558214973201306207637856408992220854858067279567653044861460998326162788847348071271188257926679664783268819794338349466039978516555131438929451755643352428206938498467052117645028156132050737563364914407780983816067993173328180778336114252703801232914279886832769369554330941020164923911037294142694370936934935743690935001841015422572005222640253106178108757267890374981741397401496626008238163824300524336437148728571369199032482628449501383338451521616735522120027101162165235221993452839646390667724752074316182442451625019079121204295519047878337526643775632922007200802563611053565783301602377467259593118354535820581677689821212063304909002450547407150939387276222077824112887176685882645542143465719195394039925256782077432901809148290519679123430993111962082508241499038646579298919426700541519009044985888916513240669675096456665933211356288096166558495615565221324982535185055749403261324286088276525475444061773828446109046301081943104694588680578412189400359870840196828138441609448253443548577182198027786211344211596237888947257314494621878924365532033466072458045877004654283432346175609571216211412207964093175021668208911680460736555268278112441103571809738987445313909738138669655600115283134955269046476727150366044462786493301269671914195583976050287602885510082770466130885614970887575471129167334252542587938793868990824841762305373415918993346348628889430776528423220045118711177539813259818157706326060994397057663797682180502214861673847269109864230792313966911884042505317044412137019306901681129431332553062352494316904950455419584681839454477552370983579596148430110909455505700130519172953469968949709412032943998663879623666715679048902817571341998168325809568095937682726419542923117295344997600216791048905392475584363636714071027584333065144758585329776218614406049191355781364373434710891879324256985636325318019632228750742238371236842367830193269018134263570507824625677713364706029394590367798895538546541680236686912735676024039188380832025416140540478692762945786878239406591887140190972654113083293852414773373570236543493910516905217385347818270452481864263777786944460138349810038957355115578777250649598076078901741456512581709476140413737637986567346233184774004719896074076975806338950712111693478002344043455498977694289815037574064261480474825173244821893155245008798253768612686990863301996396046659895588918623309078506177123136231364463326684111698269357450623573107272734771384181823093690293111122263354648096953585049552769338980792594779356502022331518573791846732222659119064657802113451483652837579370616568360479279022773698063019758264528327624821380106907437356521897084518616441847219289380696536821164694281434618550982639737280864616522516730519645577245488952619642705280219660168721280501894001498167536100361768058180636577386965194632225143256575130955313766149460223657950587121500341183173087572590261042151952937734889123193590804211581595877731461930647796603756052387066756305844873997044019371922978282957103090621800342515905980084769371817775133881385475098070565764816008441324675784185782421378941747712638729977173472771353702948534697253188161543265121995649194696011801405454863039362842013405360780096360695995954038563926096946377048003566247579710600950765046029394727655143664226184214481337340611022709461791463630678826565591711309321454069338785338617403253004518503061329253142883677583719054981534576994827145742583160452754786025070667220954246971743518296717873276085645421406304331556429959770585742381312247047930551606453262177012893812688089212449349247076636743437486929886705286714332450770653412480703260767169978632768394217938004678559606533034388925365668108278089545251802874477297554077685724417173724878645472998328389506068578459043456587823529438178650009996294043461633525101904217240685765622471617170160527251454723327046193660654973004153591228695406011162842444492354736530740365142420632298235942234631761017552297055613869572533066315445583713031879883763474656839854558231590893993991067254688458788967023116852376741863534077346740202885546156529648681371123276572584639654940198935742238570496716679254585517644663781499860189458695614384795008944835190383689908932972379323526691703647444245197725418419690766921869745648262428401103934453357953336817240321586632870943611632926656238867254175952594476685065259960223053072567434735860821445957627815417597772545114200493449215704143897372454353094857099000397101901884459085848847566959834342385034733444882759143822242390617487927964682966640892498899815381971825105762261478793313435371542382001204487790185131231008054369484125407025599480982863645390259349431390299067443900374440915820755038879543463895297779988094909257480164675310829016610979831430838080195350774856340571157224357452541900539573756874358954403570533496322594289411646527036453342848285654644156495367748763255145397601836386428036920687632967110872304804907667902064129700958176876801150538546025517846077767569442026688035675040144758816079270592498065462021771928062126273150540374886893859021035875876577811394432913746306867111291600163448565679051749733869443795870068993430773810489413586621734457470989013240284033377991143022099415395844739726728577555942704647187508387309872745265455885805173983579574438088820612165872698948551260639584103176831988003598270650077571827921830740964870402478653155034240062122654130684505236610313891987876147712351204240922485277696719917607474886515016440647757147180061993103077319912506984408437070454278707070387608015646110386702472748820685719132487389474122336520428625445324564395375379089323927521157123215027838290925346812722048453366463664381708787893752249483552727257412120135614947942480462328164993441522810092013952331732832697836169362045250937492112092660781820346744017597356151679340937659570831764164223642269304661262491747622980467224451664942187736980589841690344281182528762831485897786631315901944043272822749615703861896553265747951841570344781690092889207073262344750693354326093317111971442755985231045216923769175510803742594863626007389600515120694311694510874456542415357762920133197353259951634433191393343970830582225798679443861989178139912976098964826428389484374316038968819645203452592816633702616717923993361199511618933373109978438008112430567742551552972654823084568857041659159890263431321638441728554451466919942038780488304353123844041875087719402117840134198656823925002236526134418700231291409859891539953347797324886631753163766984503901330726523439186586809931469429472575255653184602384351517599865270377582399959929127926110488402149800712516482451404276393582933416151132089836790439924893206934459840167370148241600945254250260937570690726233271378564052274337276831831709824352035191282263376143607225045363734206163159155109732671367381149234026843676945757098303772635652979151413956747842858148399994744619635550118944440077624110016007481468985284568930045174527664032482794899148248252238878124502391341446725613698265852476462727658830842368871963103655657469703879047261073492192688491654734510858033009929246247888297446350610763567634410278957585342202374987127271623402315627784173679533384333993228988419479573760293342790271332886482165264763095673482503410717219406322758032853179033052548296149877897233144478437188451903851854074608078124053375077585654585660370094620045969833707300186104845245597771268801269021890928623008186862044364560871845824262834562550563580128252146815848810076013625640169607428539356376680354669726808099665292740382492215245596182530588533679339975852613588712996476493927142490833993206630910654631662406512772830879072872504714571839060201699298496912034839537398355588365301656822054968297853730690451277193831478828730839911217122145014152123049745462150072835860340289046517793258170735614068661698730529924613243183927744058563502096765372865043501399913746817795215854218808391206169873183150637281198536409512268963528043115766410741254221050175914105273339831447610720110498465702730122332751561535088503176226754798910069635855977005716885999420036123898426540935544400123946621019656683051605478577943026198171052854814712777964114157888408962461693146173852846625612731956699546926975140583461080504281036591420784682341804144027884981366186041548400561251179122960350683517269275879848425380055510129069712097019407223109627113648843077042199418464208872358886620782383110053759927733227786893234449468405517448245211919704998451912379102801861295642631694459032525237452027108838083924724131130364172350002290307497043851626691214134342674129491211877287148777009378253891630590977989472108048130434928797627261204472302314890990563297887527356282674073999554424310349452535167318065094042945707539787686716810375376236057139426814035884737967279089664871292313762564665374001660677169534058970663941139725359964918628444305009622853781440750652469514175468550990954592686423260779233225997672922732611621002312668575251983895175942669725078667043936299235309867717442829507580610131473298897382940430566299104498815444718446320823505967310191464025779817712003817079861394100979021900736530898266956100161589983229726015031760516466562899753574036602022344963056806830339364480730824307487519341033672681349057868478242254513017566630750886820207669800830597671205216943477982584887683586896760299382210854361432175587876490811624141926564665751039562243811012533910960729539696724580510357673683051478091852478055561510593177166080033191520437275741180228823839028229473169618782409946489322496763899761152793798349569107212656791879928923047031286520070164997827539568483353448666633785266223040434645057060797665528330884559889051187415438026958112576273616877505230152387909441376012863177424795906134111729788539852830271490912680129448272701232155016885636751708163244812826058275085421259530466907757159696345594309011751912429752983735901261865135980119432854308472482528376970236422225430661677872329535755854012928318291244815512621274421876966262669582298604622431385918258005902628176362642333884652306871408022901239538604912696669528407779103689631582831059537562983658093608830778079760873307296293590353128694554507604000198876232393234532485216165678259877210081196348718327372368851208767300113170105288801372649627460466044601404776223735723116168238094257332727792392804215351289863221615784674307679439635193453988771133338476209802198163144579007021372921387976974737433733999375935073985474262287790749587455473624256203693352309620092595382606438350722265568316081990749268867070125043700950154063533422087610179990563681296893113873602150690838823742249673025824241450487981561588334188661791129741070151526145308436033052938017359913252018230367593366793748899937547184159469469986374285654140272980196508106692369293243058892141476460454168938847488692989465264456017218977541060442778888624481592258020994140893431736567267129572974560351505467808539080600269470901910235304457211027345917799375948822240634091794587184317840196045059618556187748099201415218010363358093589827275422046007899251157472854372301563493278309134748116575628550552873922748697958559069843780369268563398419103632128519475600859897759915641100728896590627507959173472971213128593468766873855761619994355832627429424238527608024545481731506438536084812983655171835942448208814080269033438423312340610276755686846900392783823275644572834143746943109275988492096511651252778406546458723503509329782167224588449803471413871335752794761705485373118244038687187856410129003182872841290758961794959733095268018839845742090629343984369933815982281936795745367448098077107886355833750689316895534992205252715618382943439255271521844356472385709759833836998786639675037675229738070001248116974383628927350776392082010681781015216426008254495617207395954266646286111999743566934704548805551619010385448419142949212209129373266967663739081257757116486707260529341133977719082683056958877406675171437122466870577292032879036630246983267527611095501405265820501891868625341133094966071226769811740216568701373362108346369313616744507273122579023739307457808711851339100142923311810529455152816535422225685070603093856189291567809508198873805879730988073641555186359871916619118784480295271348068804010720306545820003105838108743937504344917676629455718059295108090116694667200836264718197234547496281964517965872506871066651642073584029934573336742423104736275840222775573919831263500535791102022042657161489165308409884487553191726890101454290532715167991765998264796871061710256153297227130697946470972684476037848542815985043548688999252004999765591820610879452951080831870915563088926899960895042986525025385232140243286945333918473807183454127968023627959407082462528577201086256065234940324818852315409350924982892818643063109001204559169608212546453820376824143583263100535105244167695587093676558887946571195082271102475407406877134533412235023439331429274346827782616669907722961248406438957724541262774185034539564823710987880024751479753909123280602425653140391009334972801058886121132461558009005978629674792215440984045918970384426095608254873417661274761646079871821128542315513668813376211058418229956170139744761144537119321191301679281939098857473977318322961187172250268836867628423721413552485000113566020774728097502273149120884313023991612337659624765114290866600948389048749050687630547676654626575772832219280629860491544336692725133425100006802800411586732113715908153311579207496374850325553693805735810215403395336024703430213278839310370307635825554353283846492015571618412481358968362176094372446469515006092484045762075322957427300465106197788978004939764397966755736737927120440010212639938903369063091794248413356026790866131465617698660132293650127550866194394775175286704677798911380437619166166538066950130845312623266486291455545495195711146616198257019292578542503869775474339718123140989147858431375075428729803539003944152999669677494009056000751207765748867384116301561335953692087301399766893986845923619233775101085024718456909621469800419858913238453171637629471274284120959947514601271688251484555053878870766989645692954904410692435297948830566901989158590165309000753479799039865805933515199194053820774879876446774739609194580398483752043210009542378176095411456768887890952096736723458702679917948527641605795957641750803127125721231179021912206292227613466472272800338910282214067693465348048512144553254911194181448053813907689575526430341709407124243628621790562060043088890342252952120076166524058371097784141306470164872284529724082814114117629918039558977645625308164937960110873257872858680913769819898680627854625784662474663392371602408760712085790658242831566827071794068772832475380916219346401964174317604139262754434922490790760091068955969280953047764428224710495555606838407654206970204767336062542212339606185868871746546865266987043415642147815310897311401240508476356428489451682038813175606226802452044754309434339034102165597882489502793498065830261279345938882205854934364393035434370395929312467280818157025878912199387581140868659493594605437731313378626339303558456066459343153845381521324393080204958374603226463868515266035908521868645970405359743451405380426487023615984427087101018344358260759823149683396070216246443482459462862505370011774222568336779219650179784761879621976463781760922220850773087044515699319963145293347390274388909732012117289865757447744462725123434626177053126612749440503618406113836404293883232110153760603933967567964148827402022171525251409239990374132191538110991520679402973651891963451546236307038674416998805699397678351099309248091174404076914615774103496180341345918567786021115394051253562209814314853655453021947871937551470836863156300154294658310467920690152619201018548009601018061390259516200128106222740346821657479831399818676613596102373756496082297811988023111901277254711910429770578194791574245559973975648068150622434591157149331945236237121320223298995154269072076569123269578448204908747325021286587349100259747261233286912590345401146348564412333334385540875607326938061681521405761167704362197684685934911892791692312382386879488226065085069644682474513635816708117922042608478228657542909894927202455764551984174521021916189777099768195440573481434533478234874206067819495981179972654024196218937138996039931274980315800147900745443693901095847098631612848024289023634760752744639938625352453997094812089199132916491222078862178530239138061719108191292209479133057926968863914665816038341946882570457640889888819616891239131080904781121399933133499560599548135897134825049121398114898162731261463698587933329321713753061992544496199343701929380599911714465230430364072637314249499444030266922841602993316928993069744019663317309012834304680935150825806943328029907179645058448135918116315993983049634130960643860844387930802033771841443920331924335075092395776811566454019345447945350931899049306434948143359185187704267386995449173238594305931503048373951187283120912532100054481285273085696210786266714287060030357303796852878951827767316037877656371484809489063686993398260973908658108926190670895819540238066733372177846123255631522644917142147484732352051071708004773027480035180806681372911427043775931705429614320675050347209137704675037879328827697758594900499217314545224226804753664433888934911766844543067767896103499983989575195391603451334119139869595209754810338002367847308197154830231643004937193042633977555745664889517157438968588484089521559702304789472536088609609321374054510129528719361612791872520211476603472529224146488187569824297254777975648768754306131702205252520120567814643644790301706045429050562661865476273317885603089281592089292080037837693072327620571742201770101890025397984597644771093540232737726506489035812513745306535656934608390387789606128246297596078406481480650712192662985371441468872289754811794930614548610784278471943437362806237290884637310571537150187121277393992590282356334488426012616239101041425506346135458789730508205882650758186025968304127762867898710970664154809838722368310567024101731024592498040604673007459000822600119813827659865374132922442997734423941436572958964295348616452097298866987907422413907440397750036623058889663199172030613651455830893179912070260240581431961846941763798091030283048758081756587320257447457313310650660543798686158484928814742494268144326509894341097619063653099487145857395803393091095918110241172783911597613802145408763297912797283324654464910503283917473803377696391922951291518607718055833107668940411472495497829005223902398137019229682391515040896515242957886819988328889630405594464095104263250633076051767738334909241668343263312311347129301702984803066505769694584586484042523245414514438055607362898692683799460528251940922349950506849813553677242936947252724715791654065973908117975515208184894111081061824421266646378859873954869441352931280582800109689058397607317686858460034923903691760906545385123434182876007668595583057091936738873178808302757934986924938027531499349804513152993674749800434539880121530298226140344686068328329265005752349280022085885885287371828286503954437526353373026331397130496147053805171109900616980088169266504546787810599103652576804425308685311422928969143663370735585881919469132894846373502707857297662887028161860837885477479259347632418054343906038380726699086455333465390887066284202922519846231786065794717986001589633526569313943460952449211771914675546420653828351455636944575268946327296171560763933069611768685124438107177355032104675796077657546931531117424068638550280280970733861611692216570715776291136419570701809044599249701679655655358450014801709708550674468180756920434455403138651994925326973612723084958823193978723140466906235178960800920643202235891562927094132343314635718875613779357471701049505238592783987225883830449357654797655579046570599826982606249002732180773415990813673756400032028379677033021552501520656820637655321437400586177608224650329190052434111582084291521626936293745131040378264580324428541435109513646506146075866452025676221380895616111906384503319677932327141145402835950294747279196023546380741304642389478064951964411343120855259946988383321959101539599204443609956245060644891410013274199955880740518467048685186340444717293169530123897520351640511050099989953836813155753801839375153008115885402393198351715937062282195098907786141341853461416318875545100557155513003193524733673482099090731815227399227288182417561804135881504661551871691742056833968019510903852237968149611458591205643624559447368981277994648229270068463233430113794465765815245582810084077055712472896800193593774869381308811187567626714443464278408969153716380744425752500524356950947066343479473308535859934112438607450291642110672030632910013780528149844084468126926279451716639879840166670560793208182926971339927482208344284828726397163782437960740425453905961597264743691975966787807325176797180772180359651055026864949635050465767401795345069549363684731864057945932541153849303017089481718924324990052181405172940240844241131685405370470943246121229661984625881259722383303859893109925136396020798087727179973825979651308866958420279996431175940353793321248552505271914468366240941608342707340636560801545543702703516408744977302006468367635426228325267996683562611075178419958869204451398209830656408952172421268470723174169933345375537309204365635870459989860624250904096907880158141441444000650263847185327872497162363777484051157912413718532159863374350011085280454114999768476527642563884181637778682249317241850187897142364187903888045775552931416468151588293743445180761739484442614162119473436254389047102491047291703568471328102087095733403805789637840701667745337583292641854545039834682593624114970777008492026861259526371742084433239372664375837296736720018394464147133356237431330231324861985469292573146575861429276214631446647637263445111501309486869590019582269960971132985423538003394306651321299573128835087514357774379855908618413983617128156174852367939708440768199577262027362048161557590581792118233439563977628425874378640021723059702515169346243032538231028301897925001741285011304151070729427412126068421023464031599591183043491896439212606817876102586993197240159428756170093478224243503626548235382329789729449893243485597311536057077318575933225767139650755916422496490147202363299110525021468779211115377916280881322147205744110259159245570887993976474340657376751673931342243422334319478087825314357806933424414691215810484911759402967450704172780092710471216046286691663909025473312952727384017961044238515063179599134880994861349352427433310939094315795207743762248237924129342761081964602865662288356700160899265449991009967309532745361156534670561284611860242636916700368206548795411893476928484239251155046470957520607432031047768256050201537302408448741045149065808512293457674656161287906758265285219616552326752395514452946070580290912282648267101983453931497785708642716352531979578684977660724131858626200216715026318484739315368776796680170262363671883870716848235118492912301527625158893338228255906960098217953371561340071163658360165448707975567804117019923016850515735835619406285117956336539764091184675321116077273828959934031031590675512893673171848888176231566318050428735633864885146183963244843368479786463378869754935846352652223784234745003833237605680574919080537520717759410822246859244562037212363489721134069213854355491973130238325782333164040056240897381839192788067805631984268665568979741820354030590467222877332988412540203627392259739649234901060208082123619715174835242953107307325120741495404217849421247363966635981381919435069286586250608191677623672183204424426107913744980096200907967921475834340035326022236788324989461433163191511517124735121967260986616603961934527314603061390756482811998502212330642069247250698874667210645254391337854350656614022570259636638782257176326562038895000952347430412979853887598870818792409771741912427679482211452646206831261773876969159247006226501254917760324672870171025261775828130222932964205513610039461628230014697403718691816643461043160486318472815318319901355103979439400977693207135480852064641697786859403828631911181830555737798526518544069134321009023509506438075571368879012093657787195955936586232938519206091195351246857780866271252613634225847051610043387651870301705775999918075456969215294574997390465735510827857292103736912193631109155490013216513376577746942290625564532429521756464248309633947085491031488340161254178101073828876596449787875814855313934074768379901620165226488818249321166191192687912875572384203789553620517915570587199057497807794364741058976213758275399061598979678439028378592640968727910479026921826049522274394105186621660937454922105170019744612614771838809701896590752552966249179587614518044392581422904109146424667286904296257022484069286949420257620008427729801953592043044006165666359129476422241851316713836457785695730855219029551603821498219571780468354184785885911569037089758812593749655565936016343685951074104568923544231515195823322291139743453076588056282048921325034459832446946637768837178818702740265381702232136305749113601963944728132069646379045842357442922330355664052981391511380663147408125395569676525809100578777268214999341212167531068924747029333980911665629794553632956777678038302692285546766001400668788295949425328965907224681445646841217248690714952867594622807808473432858884779221475688603799886606030641756370449862701732034415592169752500360565675031138344131208339140255891510942411536202909037024610540776215265796780157966565456245083883488703587477863560273409794333126571854519039734708127622295507026942930670506918631104150973405685799815048492636259270822365975637675353284494448120414086941537352242397570542672150597470357301078010359588503239192713169678816076196322420854342826688629926521440977410477227945471545481362333513670234560269227550261187921295041703692423075962866834997958103304615480314199066623229501830218931510446978545444429490418350960533160087853386428133187088737306563570798181802716240456071928884853444044501520825825221548654270120828596705710842531584810509602550178144146560584605593021507514883556131532516560182737862836486627499479311469031090841238200116254198474622504574370494817230809305019484546871699600420995098233199676510626449080818066581923989390320583219174002419361636281736500234692816907773018115564741611085468812596314035244125374309288344089071063421813416295639495753519308152227968454360414664030068298537487940805751925251339174843607671811765154475519899028339070987030405044522934525574952490589819736304658273143596459946180431194268282299738077041796920267982060155383902342895126497428289275221538666893522418315869673728709230251885129593956367706175884922392829983505418781366776008087008465333790957600871247213228028413549888197314678768052695963530418666551249560290501573280530777529836963175029468080890424915604877865939456851208514344779322357580880843780672177228321153617658255549253306184238086467897053483207823025120736509664670956606958675382530719957704187022470755905042883194848777082203173992330906427747057736799072905145232411943078992902389605175368973584432986199554351499190004953345256716295627417903927529916739918724110010638060832391558403963526874400745908785039881951840748285920854636340515406449375110005673719004503006389768532939920564102749159071634700817147756205061204946435545045038930490525622306960758472257774832268053347607689648825407880858244796853354936898374650449037853703157542855482098262962232514103500162815705874487493786437149759847603625167042150624494682586549968456609919652148287950818573203493866349277242438272189529287242717353283896000524121698920113758049992324571905092609175040925209714169933690460513243651552178078085904394588522931351561233882915144453582763612481819371596958225130017960364575003380570614933810225346091626453826928433163936074811038386067244229190195910812299405155579935400973097998334947357781725066960386640967240629406848981276969704757236474346965919028153709068136747954515413881814307886097197961165829675595617394473191722597901921294124352183500393121071375318419714820868628319665321917472056486874873726347686360023242186565630644877687222995887119296633670424734908889499592555785226193630809319175832740812393720201873668227074522715801618029532546825880984480719443947783873960437248459965185347658030464818136002183324182247774202436297148589159442629761554626791363270633762735738272576209627995486913639484363746169201941568065930609987652909428667447018474189266384598400567928614695637543231771279589693082581792831911093915551320169292352289976534604976132500461632726105033030301654925782463604090001172675479884140524558908337582871429850356451455896725092392511893848384330162402072514823830891917112585943712546549970934138354136080976740556531581401240338703789511702832381479018034001395255492659708480973826023403639485734433106349014788871947231933190330755638099872116247948155027353830503501553172133663725578821064189793741555703756350192495067475479440722814106382925881225500979691448342147343749962985932474514281839652774926947117802727335089383154363044208570185583768369747410971477672513717063081555587087953321313185556099696873612778887748108209987640778587854348202859024484825129346127683712782342118366728432167578888714557177436758476282719000420301932356757958683313568187574663375117821101925111787931686519598777177171090164579270623532353750451139637669487438992130135750519844728069412397438075245922158911173991175961359343536777099468496192098488234256105789612719109006874062897750642011606203312826736030183701465631599858681680264756539975094055673070241741798672999955343805651157887088265240828938670888359316498149202123510140187756710496974853994328226029393645795543814412441023830982795574485548851131799056241225406722333577743428207377184423514237717721339675784942997453365726751457405882945893732240912886844034599225360332963531933180090672382620248525701081996838400408018903553804753815342054638405598078998245427105629549550576458097224601229308457685938599010085825341755123862913874204153630179013085236096612169314893548522224705615204453958742059524568681156284112338975773456727446204839195850329480873436236567496383377182671580779277694776951524018566182370206176686430553606311788149130135387931644318856018908338207776136199930087302006052601700332201730565520131253218907052683609440488707187116544468008014917200534139986319620231212348402807978306727792027369549533588240966525621772132211205241885732652011447090031764808198699956127571833401462699154842526104161610781783988016361324847783247195951593260375675509559704898438624584928525998952301713994304773646070605889516029734088074237513890376986225597160295749088711290879334859588458391814064223388361725945397037166343404487375008617827704687787605399487938816859066736544829167873724388114463298544907389377044157377438642354208577747842021166879642995192885344431495357617317025788291979909206261219093674502002030254053920260138431753270025766703843838093391577092625511160295345040013157796152754126284424438084359224306014712268175887488449396801439410157231529801468325550814010564491049849823896567122960473493249249477086791731566411997219565106283351800856572057936283743474520736435116309418570528530765425437394717845900745998694557728395027048741937033196059179014704725197750661835258531012880480191529046626274311126684129168880713351387897494194107440027311396048600988779998140129278620223930698037837509365971530283385087034267897260295427799916637698232357372190901196304038129958328807721021938981711596802810227193009980259427323582796961905044107277377576891543522275543673058852322586656490960198987049980051462579014882476912303027420611780302022931311999117307760781574765512113655062352974207773676933347763676254129802839109968656834640756493376631594454142106245858413333512460297991554669703873403048963844997914106066341289405745769072007321243765002296442023902054251780710207535279766197024993132766836445110117328615242105833081112018992406906897308393237557439069391010491260246210532385272837990118844305890956483510557125118245228631079021125517127768194359424820562759102239311740331618272539020145099251726943391459294257959924186990240596098509331789360242104879526569010526115185095779376896580783507212431018393931213997486355720387811494628756835566752465668337993181279299152175136416997797512567930691591115287645917499942740163669728631292226097505181235334561510745952246504165083187194069765598674412421486894685332261414983825974010681241607737505478960929448782224965939403518573884971169524873162486239064478660701798512202687124448716647689097346850395581404255344912315010207064710548099019567913405321049591023442609075978215102613252722897359651147038703522784946940917132946993984266182953268344607593582317354634177684951403724014771985453513739051592430496133690738556579948714049964260450519954869000026180734141752949126825662180251476323471906711824275388054972979873418501036009872802843319166255815211233030451052714099572664938728104952083336059824381963702148721747917152392554205630715242553653265646853146616156516645004258841192109743466855150867828771609219425040983674805329927678261957843393595588585618234384274057711910097162578264694869391839709888064770756566839559324166019347320010753567204988059563953396034488390798550173579561512596474029359533389114984418753935130204299306987984544684660800641630507731656731426643743208660850139497998182287289588728044312882204889092683707681868463458538775419906502633238908095364586639639158311701503199092069095213943670607826359234271790282653137991692002725460504848813029587528940765104375658111790602652562286991754570109896917738462284359873032212052501132998564808639812487209676388848704341406301202269239248244360759236929896574841634855384577822528526685477929327241472854091640896475041882316813213681657148992056785012754790516735710424286113327215260343473830375155842610550988701385397960228914797523272758437547207651346898666769152069912439869722869836749246125942425702829768968451927525553458046677413649166857546161007829928215992043667868208015363270175994455683691766399985861325532994616428640484237916557141472347490919860535640501826031556661421863518365695389977897525735214961603591710775577487975877957843789550989967506329388757404588302499101669135071102630443600157568386325996467868148722607627834477185754861247464948824383503430911670750530782642321812754905094049531713703271683542637422095917177178568709610145497937829359586728694818018258406755298950255615595709243119083184911867627678504253573458112538800375104953817296826004861227177675533530166383851152461651952342869731440413935165359839763675766457905972825830357660048207450691011502077757131635416102279362596632137726638354333140000524201800232216857599437515916334554676924809138492028033721931365924825251004410345528906758262928579846046367052910243690659974985117624133660063428805375342874186764020436935853861057262295544425217700110825717157231152720141466072242800563010168889790823451060821330550360739284249967065840365649481774995738109184429365967052321508084606764219404369860844750833198377587192221079001923596039992535001804062139636503656007559085744498924315260536949375575207098206588755717675636213117378173041587606534414822261430962828690441361542235783434714180186427605454108933787115319212797225375617171096880426292882022267493523184205992920555073791988747678990968279673669861219841173942278870732608358118553262696478927618834234243402289266679243256074583041201872186304829503059003613850807148687831431638703172436141132459614065353906307417250589884278408377431000423301841723847161788116489623583013889365307075379203391909458955641710614384716845612913669632559056249707402301428904128600190527951477274085302031785058843664766196179507019425184540705527431713389569369670857399077875250141313388553438176091632104985900728472984461813781930611615950041609398114264813069190153115938152776267059071274873573644148883501896661113235470265821198316530273643446929285564307267915505489121681938684544618231696091524896376396271558894821079928146681005178784863664979234989842056795335509148964661636473487440408286578309172704450934986787800201780081279793725809710971085829971249188129045533421986261655794797143892210160206418806100796657110083484058066007977127331708910649040124770752240492808804814610728547186967325441453982760643638093126255002379404067107570015693398227218733779843599597058042475680552971240801411585486724704814682428155147718190658563625682206095294585892401337632987699129227661763781323911262618368434084102294037056682511574763528686632877950544141562689620871681854090154926158474712760239930025430612795773973311972643996693699474038548970775353105060333931943612569339520763944904599528918490443811501047109023387081949218836367287481961811653281992466574308625647797880028623172169549973585315133454855184848000046395000431599099535822960281365667971424233132550584386991197960006374114292547860955407611156944218350412189632951543398820539964340091102679272021920033853897322487726682114465458969014150458383860915476848703784512331631560145892363589263841732246305068522843563830152272597878563615144492568819410418600640798050751324077302583660084929169680614560688119102946733511065703425013682346101385629707828000946617800675054457114108997986363351463056435900312470618459028090548518358328946291427402175946690566442483762042389534935537945877209622975787117655223309315473466489665356569015432011286081941910815737829382832315077216676687485422645576584277823707273751190847162906952842977702605555631726379905957144015503558503499336857271179383373817413945075286953583531303776439587492359478190267078515686078346449082601748873601186444823070506944196780848581178922595997328835400402722793495168221353274104177263049146827118921943011058223664864197677832572381474324789839506453414877834435261589430926535347842635653857943736975003959697580922182257125731439303163482425069148485974948899540690906108793836988050541289756878119157689132491200200504986254251442345977264707057665703740066044627367712421314059031470620375985706152650527920006804205253024728867122794630656059745054574824855358243571323025931084417683692516076867068331518005545735989378440575328292230874454721421593408742135606268472600968886078093891528768985037040458896677948420010562124783271608821390225906344566983673718509879694831386289878013176315907774096986928689979326365766167174546180540808596001166159232869820503513345965124097027079484910109943939357801348483026965532214305708679377516895850712292885938745751124091392776237401103588853865370641177951717508811023542057573957400195998327837251714723959216335085016497600522764009150243918159613398524888697164762804301064236532038397528329612218788053137170674371970265932423847873026606448776804912981229437181763782896596605567906221890076870211220347710213197564969104760821301229089740403279913127613801929819494125951962368418819090055726875303787237805243392140748602938008361219976510707076337483689942210700551878802358608981776264597567089807483144071724947543451179182820900594355376840898730218852287827781240280784790390530616613698206737654354797793549921074342477838809285465707061811569376092801274999909549364363943199377448916869634802637035677657064646094159126783681122046720833514028145453961013813957213272440366547583787879737002295863995607962755996363905860333657404523517380580336134837398615848731888453748840328573302005987352801616026904579862819999401031432319369755840478653685027564167207857647342881272802624396573818859261176667563975553990022057862016827566389522129485475153277414377160382374753193002846824511911195718665688609019997891048126762090467840256524928986320870517695403217380554890583266158060620168593247727612354566320027884922061260535666587746553932146553436084892498894559256746813763342078726162807848322519601523338769861567831701511183577038677048958970986494508786861159483330106203596481139191242428516144930350843451417685649462110119610645632807324793821250153384506537755423413046785651273509570707828645387928984476721080013955127596072373057910653125783334871528136408576642707636347280040286358021211056766205454971037793226476746246705963529181566066358548904466242368749914575322630577496270353335117633678082152396083458002224996469070634271455274108888065658950621991061412987176512509909397317335745659359790877441644719978230039964339350564839322709976062747748029409489819550808610174759817239437518788471476715231961790464388709069940968531488351469710590836334033814354290322516422732573841218662226005565324525788237110587662207153727436405101913525384346869495837208072036179909311357540019287766869453299918881557826658077793320120141535444794704626414898608511823714879490679277670072693191478342752121378604937040647809816930654064531984938933170886787961106090293654952211294202077273001795419931763297257686262606803088656008959225643766231474344043739084735494573988159128406980552817515360856609578623025525344139846294637943044421541496598932203696365085411048645601597225452117906402222295386369049295086418976924483402760629442589161173535774715814744740827777833671812814044473300684946411353255041660800574674123969865557435456372987241092502461236761398112296483816577857348873945234820240031076500595820967634888290453359152551726880547840555014985169763613720831424883656438222948004548119032450144709623502800979115346583130295307351561016050121746646897755043885535755102690694612475682244132064893675910383848668235548227333322767776736359134277944255172117411481397313227153308756495663645549110734813466745318813908373164291703668191223656189485562450237808435249565562037701302374340293397266354127964372321795576643684181909498623568066001015556815196830184540713184050883314484738795318580545239876911269894429520050860132888264921865641241059879405225653290787353456077900187430497794732793466637604869365931020975530062775220859040869420638810026066549744050954450237227854565023639460379038199601576593894321165899162783631804837013925214733883255197501601259184131886574185415366051373457105712256213885109522595197943661709042211336863320920686175598727616217052699260395581201804293935381153176350603895079325926544675674827556904785612222610909702015609581060733135833344431405818239697914968064471319169356059255795574671845167597232581295458586531333681153648609960702279553707057569282175891184398044309658678539545752928345253235254177690977977736997430691037711045551421085590693490223952603688309121167291198370558755126830691523958287603639827102905481378857827015623994507076207614658796750903906389530666818879556687253880770588084628330285389881070920254526117450089920579623891563527921223377716172054623655265674462826458600476241565232388689589143036774019403235203526362535066272234983347252890860660112182172039379345007249535806320167212494804831075318362777447925733903588307884058389445157516623765426710947949154337752563877584720373886436891044294245319739992025287425167929922575356960881563519887737007101486253171468377456882642651741609028412768825851714639845836772669998999810024996451253514813600962791334400478041552661763280319621842337150924905410066883452323346838077468471398019022119503791924273901564332270805594372109970282625411537098517669408600882772720903475575121802964317137200534275026356359312009755149689627127111633451734924145899195746591248224694493313419346317611527749647592943136571983982713577822787608856491823257486409823593505378885734850716525819905835298976790610343128458477975579940090872816664162668362045973521560167104857570733981873727208687794623799963229659762200992219116996022902888755386898186386519901720080942298330055837831701236130158370917911600687565675695734782867151160308532653341963000746538860746909780694013234933105843224554746510948538395360782525854335466457214609904852411916833843450995564663772879655401630918011190652581353381779085318480896215082566793461086237545322952835542866274672933951097780218427300145359856669264930532982122821568575150030132038081234413147152812402910513756967872350963998549211365511838246480238826393744042218888540263583227113382210556878956097012477568883969123534471793609503870006644737894331189232891422732781818148522892789727876416656305674869377414988577734038469392351127934109957497384655609945961680883533458185584785962975907604522646281528171820235740886698049990603813241855356130879329929958397468384005670295151661094311789943088352322045113407203117432700409585827521347590079155356316972817971907002207071089935300412452612134123655216642148369502488302633115866061487765326077241901555545232143681608563887156456016815157268475727588720529355381400403384787712160616494854909127407447817335828863458964714999256708981682702285664379395350354879123084391652153127354652500080636377905266804737944114081745558362076617557861747220732930952641100453772878264671713360697116788739810363108989349696289574032196004318594042974853836254106144768427508317688909660538548826310991033119486766498395483429563998847827726723285556808902930160256906581799287473723264282874102327597802441283921636417107454663570867676718304995215702970945101379202280020429324247337038777686963981032123931117471678864150469396395098589786868174880903407467844408901086965872370032593560091685587588060081423905715497525160950489133708871528419055596230881330766175296027173950531546938264882969132637483252383486599681018400198445131241156500249134495648800866953708825847366424527091949729025873022381382540463106628432208864535939907113491182351551653124332880789772278263764435476569944656631806362662217725193253529371720339242915479074810350102412419157503524196598141587795376465771708893688267036139451336194733200458901009564713143259462767400236905987370678523435355141339514910910530285529824443184427708018101073886405677696097215540564065030232569701418295875885197899585240091129402270852734531523627732308873483249135902543806015454502876063370045822073381509773786215204921125318086912672154744807583977266416911566607659427390521684583046668342794559339038377532631202547484935109147890683170296220029069054640059679710898938119778288847578090265650242213346632576541145628277074048624401517009090009804276760101046500715416598591691574906415758896302705785230580086409086270388057683671378096608307338295929033199389244823604324632509868375048614252174284439467620660977551502469550240189439065995749721073584693360128438440078041401178019742906000295823794751084293770366863555368424217969999430454586613414755907657776867474887528679998777523971284440287135822784242704195421883833879731090763543620644645567586475788356507973087799659309716527909673038905719402044585040205422239201733973283460508634652355724918988276348378105991278885199526056665944693217339424007541894740656999442528226525257513105191761533498798518046832814893176253359819310751616763213695353715735568941401451452066487583447260348277675032285639503801804496074826591538022021341381887876110475915310239527683742885860295032942262433590544661048993581305955972057038902687336894226166795453051161988255314566837622675589637882014369829177667778324253419862009125020464173768052976343587077249562834159352717225518116136754215591773583274108008141314961460694446824837798725709866708616835411681108668381160743661658767013045014504541624597334696941993602233089894278942468664900078846608210461067629972706379466896331681076711873418829588503863396169735740515811276473550330617762923408667003912815660611662084231864110617147678285961056698631531456309332358970124564401784226978686469837915040676414852698378383602204699749748605663902769233333473572343224808975605234859750313209847436320826370046380463280138303297517840392255212509166934911138661037075724110709651931618665206856068444672665627078188793994420366660907199238100479005330613192354890320689633843404492937477930178803767074166445192935371959473318747499635839518551245551265222859079763188189027429413169729970217069156572599710827999929577720450507186777956553287958391225376976395680071154199881789166671963155979682297086581130681337857520661592100162155926831376568275909169235004159100485482065794277332267452037213863017101594630002955645508085136288429651955512788216475715590408770867617521365818311331694702631983368682740854329858224861959100742274109132346014113530662285324073096761373132462993307286351297288809263646856770228168712010914870104221260573207167612185514998218368535068536433257050235422836909895159222807545314161148526803223453241255559263346301196054740722774665377036620037636558520584383163798126216276639641244544829311538470600619811934140794259017838042516835158681379220484309077224168400532923104121125007625508133081778432377788131369074196200240734493215775224219936162449734120380415024700320866580227524769232323040328430661192594534128465146499375404640343779325242988156242918320582006646876130351952450425229577546990208452328610156948799655399854992267549134198239887254943253405529593835209084121645229458674943976666484836707992655084861310293868791702088795327284331509229493267271313595904136848763923353938539021350652078003849517224570027627761516134931368240522349802636567937466635324496677000253327623396336494462831330471260306910679152594465348648782199365335061481551023080832502358565205880085064320367632571908089903570611546530867493765311273110302635841941432607975997100303015354056248228341965285266495744982498837898373869844216554260342114404496770316626564013526114480766774069226986666804877912616407094753279041104575376808661624657924972793766951000349782914870125713794939014597161516661795130662846859989584497191814231261902210047539204243997088120061944158814864924074776987373701321947932054585972855478006353446870811782237796449029089371131497479952863498151999109243287913204232782410980002303543317033965458102175912220061963917706634296712137060252175686424558553553158691775340395389871523626955950793987951515207295486421853757012780314080626503168935346487501712895437227496529133296921496412109593442048124291399694277120675769646203651834713025856825613230256549899018874173858977050794964490117614870894566694788305560673937779607507165150901602058603071528538034180821240341129900873879972754195540367228493002074507940800418929377778362649570648065256123489100230286898242834367681769814254658178937869600757600841692185259695728072918239462879713008632755035991362325016632208547989680068322620771622670628811781999821805830866694369089050568881613145280120054336440463861211958188535743027911987044439968344133403490232192354882895499363161694512794276375326990570538867322015131046790908449946011612218378663406491912046993345407859666005330831528889771847195601167508306688411574450439179222306550850302245528362409447652003782366157451540405385363242535719461617770399984217498971822165235127149947075743620453639606625311647517772784874809090018068681386352058423478712577189011382428023944034872035061737664977866494664709742450258915488976446530454976365379249453025382705676770337654007744614533709885563723106624526171870003561447088748827104720836802560742151488557280113700304338428402935055546609242240975474814875179125519514828359346007230265272988902098676293197312316265608721554302313238635704005371426534370634918847135854264307484987213783902962636498058589194692645259100579259826208713987987883686688638967372572246034483941784898060269986534871813469016376557382091069009277666329217998246658555580912337680043836992118268078134439636626944204803143852015294388600750008144701503451951430683972934360070577494663486084908709717680518088229558628924728361391511401110482957393274772929172282471493584678781997858716213778151580432231252421525935279168090132115025705870287739894674876121566508367272392314034937490366119959418341603600019758445292858812160435839234974229549916438163377524800788216402896189289092503210490271216457726902021004224819602807327377474130831039531897234082493218364853958805431283024457240428203166087583767065557098428101152010353470936195033342252796444973600667837185026745048426878805934859665187000310708571339222122776965176732863343902352328967783794039002826696824849631553783141443452533834645765263955528992454911726571531482122692324354199357600127381648716226554421695253825036027527194197306746168290323947353320857987948545783227726795426260288747110408618959104866013165123825435088515316753143346267633191466187682401914118783368495565340371157436534738953114771061534085759340912894926220397532121107694627192082327083811014573848073627314183030178872046417245068128295939108651193803054380387336002995474910003629145009115691454933336960792101812151313523623706291260338581862157766996073277136766712988971729878589847501745281758682521318276730286402160090022852199273670658125641452715509184973028524793876964927006998738578059299302327215859757800782302042092737293628164439269344992867512074448125691620174849455848769813770223055823307166987599671283507648762928116452709134209642118271276344606023890690421067361948222900098818325932888304087056930255799045538863514494550554803287763184894519907305432903910944806022158850021609781162121209558781645251779190908064181782662893249498075942516726063697588181457061794649082284876120706193492541148286380374117384413050668878914387727380213242074005010411108932904596673292607237967758029186478073276286766859190712037879364273514683829902084865802942667238139071238723897750097838165146851304580265515917529036736972746184647407330998146448893102477348856566346937554464289108719120836084175361867939852797672787709456706950835439068155301947518777860570730743566229428743181189174370868233941289623774928979420632551544521156539442329565769382228921839386075663312560299350541783246294851941883552643611085042702498737312308106619842493052125734546394033315204167248601858004793759885220674231712630130169164439163115478432146166579885974996498574991850129628587760004710800750098479134831988899338827208072190951314384268459122368592531776738337547341898227442157784084230032683643768098877156863706237339757747121362745151415614920710678889703932809637912793315105336837370376152154087346636891851555746512931045528032599733155582987421762640730770249294481957180793012079928980548138714775695430798827030107161887952129325461986035208761819856075668956928845606639397416064326384211200555980993664905622923732759490368160254280806231705619004332117178474631713611444172474723182712192106058043526540674501783686597627280052605226934924625557203812602143708067003229857148132186450354254084008565552038391629982704879775519989219163089259871326013566069315931695318399072810564637828031515368661979935284727632946671288309308639860493192692044210140106474341863639829580452460964933766324397663342144379732230869658802798214256873957521399656015831836664774026193277288346066808754391966104529956747125043209577553868384829449281252997856638647691073741995585916124866473607149546582970092848280418187912602541401973807835458937195884791898418195211838200748914846675384118140173587399054362784753838543837112537478526856163083470188128153053375652543183670558127420771042798646052739536097585210582669993833778558462655717457182740011210541464054396987313435815085700771032997275287035849342484005049181309017005050106204179771996352163976588851752808438692041324099464541857303818433106228215038357896501024644477085367448994913740870459320561718110683467431249664025333818893076347164057254519140145025021820192065281595883172443636217024433578906560030704647018556767654580275478693142620604255881777669320745331961846868694830355928798964962317006630688632728016255775971075165754992226080427890678860908455562793008342070445721922362072256086197878122665788524133985044617826463565670125312544701096337221863468751514684236152484900038639672741721272787001616734432120157725996129903623684913595586940402400970408785863501065357557522486982851921032201815571365046330929113132280033727642311172723277630095558204896154460193006984821703821066107891707309857914270388736924566258518726327235384549174435553648505522921400018604631700925337945092856433644078575552346697495617094383558129382579267404267448729400506755356296509129463492186462935641920080387235859934852003425132029159671643492493651285010570811085501266339351979842604360487947586571435762794546886949136897136036275394603766566123540049555777217907579624757066828226532474073066546432016974005279899727257435919881232145279455959281164573378214663582243477858967377864022386458423989824165595410919296904338639871677447400999717282471702016352774802116955197021230860133137333132792379251942222190601300515107318632932775829182125793105041912645328115446138572217394214878715333906332026627945148198546934341499679013117294554285712272703075055736049660630396096716222462001814003175174195519777141389538063774831239191733259475463243074385984398198584469616340588053024333178817710993593994262041715207443375872045843828579781394593819719074207606447533569346844555398553878327196049212282994977633197697447392541335757590646890313799152953798312306080308154069863666077946263804658166342029228848414955965314790757953324340325123106051911531854835071859931575810315446836479926488054279249482062675706324838055791160901913722275311954332686532992937941201194317636164737022576624665140116336119925728209311344315926948084519174921949690655766062814602978653432423682920425032174415670740379620129151370449604554631584286614240169595286307785034795341283879463599717894291720302393384345151297568086109439165110129708513514702574195915419847811354971530417775299084904960400957757476079018129051363352261637357725046129216457338713100133499707977633735652553953709917728358686371250763307066079543511745927838526101905724525518282931969402824780772416795443464233220804073572888249274222190314450401061809789849622791939450274190637456405786214248427655401345451440359505321652195467890058199101385156527785115233774411388183073290551944784990277582196541512672705359042182383920020076157459645256364908956214219608655763917442414370326336766545863653707673883159244850233527811537318997557598383132773772127318065691444305025236833275466883376346975707340554963265939358314080880709470648507062452736046971604212589109504654808712887666727995823493663360611336282729002176784974897154455958596109029419120934403398446240412943163015940992510587293270016063322507293249268333093394440314983952368113798421252633970508209302055012505979136319669776438880627287351535816902047236248239750046001119902494385655712968009908689288702138512221374106707204315418400076345515081652009345178310036181348173963442773229090424770559619938116015528336573420655295618331051645734521978363474864086750093145963985742222661086194334415528110876837638185134003550807096813587838543921346277195798265330499808659747868895864088994851730478529391914491377723796203587815731366187830989680821168554802679513801178170220649562738399234347240951601882975871151697380369096353748853338923515761434181189661238968250935063377606218433805458496581126334097878516927619698432353615301849231766035586374100034606015008711403640160964509755126478773782510450480187277882899843038672489997631818033695811236189918510596872137201136138382411696793130752880318440810584951732976396082028740419867574475144677957492945337286541541987364841662207295181249732778101217442308407298547160909193703186129334719656950336015375951083772093722086822099049323668718897075628758750673303202084215884497040549131881729484475973569845278620366725822228027585816367533515666928415982937506240405326528513175305215139395053676364706159432898944054707080073355661755678425532436197967054929849146229981250320365382182155767789275285717013418101304277819878409154482048850335553782495779321525636772197042803680682996482779219207059350798113613337645277449573342237875027535171345490368228358047736519155377498273375763594233289100586774652031993819375426201585977218812117972541504010600381133101195809677140033831551935175661780273862963788437920875025508805115182744674865883184805358428894824577772740560868523721587247497710242690692395949251868391420381496042637658145115327735448348314197938787557108592866203323892460893964555499005310910017354891064916029878300015100301337907274743567855784814856457918121198248598389755137725848196875652583390521727499719143134467746315965188972803407938036398230699261013449937140547229694641028177248918749268395242510354026879947148880600644472404626334667340311489372126240146759594719433462333791121259016846945602787784994008416386968506594099502093403214272917237934164141275657244024192636162403508711972736869556204042053505718098232120762687491448192035722600789701293197043836227823895933360207023434531020240642840194407860505655448506133568720269101787358228738129895499038114409972409880564252470216447092285811405201677886583077291811636960266516976389351079856219185505601929246500747142241085039045260369817465304901244263883162077707109803113408579821557808545042338524667418214510361964088054303288292763216604102033693564795145066634220684651569322819257503500596441594443216955293069281870284935001367564525414648543129692428638004790596345403136171353586819047743621117904013536434104000619318799629361206740706241461192414540848647491948495103478928135118708193474080693957504563751045896088271827901492740157512330281691762131505470186542166619228183334606966359501379089420848662808940079766991553259172427789004560365209490205798627925154171748859468434200756428955938226124159884508791814736554461259923157789488604442690053859206738948322715316255360735242727252729342360243750516931432824916292703267181941390696976628619938350855836919740981626164527502029737237794354974489804572060249493967882784240341717009556720640475894654222240076193348003780509543469467972961979714721259336586635499659254673893137053655617632129405413924846779927113581474479447864643320375133272113758929594616280274125358611263919104404076494954726579271042993543738788052521146303888295749235434166172969342238895814403585756430504822146127615819331759466167386815367042324988251727361094420542668424840192274749589213054313203621158015665432330216095521093003029658434854331047221835163569206286712497752249959877233856363632435913804986416252247310140210687988436887200753281299977237763283105700604204573529695766568120634177779637385332532731424877562452241604172879761321425336392530733723436953086527719632310027809828388209317687573540177807937174301606538513427934408910645302337015485742321177178975907567740784321548450536234592581024458228078729374507059839325793151168891158528387160954127311387072504221845026339148193291987709530314009031523145311074541404508524692192385281815549523926328886905677295304884651827443153816807995207684880422052810755606347575549433835111125850031187226547461897688610090822315548396990575264105105005483891099054864490363140240499139556435946072441425259250141460616456744400143345708816785645951290668460227562406081422013682822987506478350941383475322573328431038814703645928425525820509115063594255703675403988459404827026140668085486179376904651529812281846072575712155698260339591177253474967465681712180349151320023923419827867148478190436409758253450153893591935062585534483751556118959936027546054608823775928584939959578207496227162129447131882500526536569985376011009569934702326342291207260044626542027347534378314416940878650436680600450160127297257463527339432255129541869825197088647672592083873683376768233638340057713013903528252552144277422661827144757891613060829628263506503994677696501913406168448642188822681762069680313630601569808866832460749977310121307087042453015598134627049070047644037560689514649364729906259762499752634382522700330433758702730283452846067548662000271212641850331965064792276601442143357693014638333307538157378264727309945473283647432426695877957316845990913218880625690799893925760057383312533413497399386404842714082090686133477573120137443985422454008705043178040252165879678227820515181660607246373719333445739806924193035685004462952998365559606554259196372435157695543807489118273518414881037530492213281611317364197407028488610833781923895280503845478248133170729335849815893959191781136275710658314903555451360411335858492395773704150129285695774902294230617250234538596135760833521452001979984020053420855044819744241338550723241260913494077176077647036415498302443297070570636474224199015953644841794896203725701447534697634622099119117876049490618061243493726721558531015406841444380311712996302587492807898491573245272084660883284046800323324386543635518983754827244866978298868417061003588656656813329534567958099239907284303135011749749442262807225583401460293642518502718950098867852071153408820947761335060384471201325253546692707541987548246141839026481782557965880778934052170393426056182981753272118654211456684092138623451992991823347523839228398127127149410253232693088890495055127421097700531005326376549839265179588921770617632788488369630919230696269133720771391743636592874482602511885099187811972698325393902483307230894841373603748137470330731548399166689345455207382172981062430637504706416975475958136453243977242629900203612028626091995455837959009372063636908078509212616954559227302491782944054434785233386859911767808563169445516377295246409142824309633325041837722069758259735413204706286816392720400101049398137904448801646762633016574056010150313002869526150893198955724090780254444112833562587236837667768609266916335571700836611116270459307021189850431059481515557157307944471797066854671224383354728433151102182769308175878009932587012000197257193156159814907553836517772073003169390143954997137930548667149152474415706114905647011507838740942397288472443058746702413118723206907095057739630103364697085487486694861782049691024035714360633459014911043422531368495015134518102150800557245835440877672931717735611320887607629161907984548229577108018291972896449535525719823404736057215290404290599465232754591518102283402030032771427306982122377833180474565725904871863815784422937891942499968824334946050073908504792155926791575866101978463941802821137871487000648992752166458732298684645575229747516603260936195654454490866748631238744330202377210939484935078083148538749627525307495418876512915691063308634115346762105836310588891385937211497481280127731423357500437091060721699043820504603792837871620495420724963571711191497641268292022808450019308132727905423536375791706210319082888345207001315050840735937714206274977745090546802765129225058075496921280640382203520268899738266943890081205272692885012142743451610005139172897119630247080469572299443331910796862616932888882891798315609076110057807873735997835604938750773802055420344960971728568335144837825414031800569980062722264358872141470870067106514130692734526087259384141781796474639034629067476627142063206072980003236895321961424697329445985532954459098712752145664203139642130617116757060908546455323105573747721112262454378518457629947138646060326014540884356235462897820435034741374258718114312794359653746038748290579850204386836581480423302198187849830638432586081763746357867320543667347055096234510569984195582723167935778950723410069910405611367640891908511006966495396145780907544957810109080206458214588982946099461927378662777653640913933231760195844307571649717408490745114479114329126313627898233712925958658826316954003921146112777684639412606900494622792474608309465926456327186331969050845284710554665708342301930913678115339528163824244307684010742864951000561131374150748384813909850667287888832418349979520226025552689024662044828059178087833567751848049943013173207231800897585089033438027476784341160897595747623308826443213444179092658591723095147851612754752889079261813908749893994638861531765182931255593274991324601538923035728273852497540251958775188863581713453970919324300749188371871342783130854606950924847303638114120371146364863655173743563512197194293449140230349059602262207725449333278298597014828259751556605135015705444031380697057871798378309267742438229096738338527216115069353142049859877444497683732780341112928465274367083921743721374742124165331874389953368064540305839767795258483707435002922824664881239687349299973193452857977420813742228874417867046501447332318681761123411114344714074296091980971406357542117776087003275473059985964071138556466311912164039555635431009697258785977277393605281630329463803533014726015539855019214196585673685090619751206676844867852974541289208029768722039002338221086092247772832452648911078711649153988863382537893769609548594884769997352750115733790073683593946930963294131289863519402182157197080265039868479237834696048812439039719038222913793313724370717779129016683294197280691204680518018215598518346495765177701326937599241300202980496799799833305609243631261242368431551168402132171748971125233826532662766730377632438590770015176094347427641851439792676049522025264265976407660344535204295725959759842085898837050513569030371215267725894607114812376432649370067781048393477017275016810950964995092977114298285578210580174226566734862964717824752784206251157464198503452256393545782552775588896652482362083765493680252694221428741401667463375213364229250001888203852155714508296631116865316245165478964849045733410930574420157594170285770721287602807350527084101783366047782755406233519698634021857254228598190234058625484150780716106973715848988921153479570252902463198116965666321177811229699144757957367312250593351214434480807518440866826645360181570913246070999871357812063563889427125811037097632443721697926660732492433562125677505143199537595785814557924018408453343382174732112028585617177082538948332407772312630735272671980591775270068338142523907663654170786640803029825809758487189426000019721391608183303308331995144765432365309516662573569784271544003028515269765432510953054400447541516481358604257898398434092470282873483674971828756683648835461750147424726281471180919965192405940752967386800996028050138832907076079665365206966633094623724089058381827501173502847892647752074986025489423423446970643873689118437227116492181281530190225541301214793866418669932981353299518788574727996261553703159122707524308731084829684003590237411428691352933432611632015099803742090796334597512718777835175125606406923379415747728923452329274257407758881724278581829388513064626409838376749643708421800284261301761205476890572215544136750266999814978177045681725271360795657824506913765458765201203090112336801822038226442685736165198971302825103260883485506064052901014485283796696444602241455287431281383365687807250433133131364076565600609132666591357403047842215770322167551550211667040777188964342402215690566748127888326905746028600927927029688412214470157481246006770722237329924674392698738092529061541558667727420822247388146926348794896903688329762928119032066534390365246210631180011975385083542747891399278625666344972814160744362753148102976804280700978957549476783099593498553724941333335737050954828763929632679005311974934990574214034949779186819373226229177360736930453671930977454361154669721141818320221581722559794582302271242635613000058258229545503536355918644766481526863098935092329773518640577499286535565907629021476872399213026275320892154030401136772032455213875984424306311072529007043944580361241690360442572941466945633828466651165533251100019649916883342230179986718619205859929214471541466877425430364387119041514896055272216242649092066424860816899537047766236007207657994897784139893491525826188268873296697377287659420057095378838019420788690293201353152842288707167292773048820992612779632478092262009989212487178843478364955066538527100057576831185774585966265387689738201192271482943798978237582142744708122735450441690477877314333554234630147011874623537231274565110306307487663192119563208572321939820938512439474424086360380867771537432786033317958169641430138520709429744667192434384358971993941187265604126386922735346976323107070098240378682726813380832318127488513776261731544520293440449446790021072469896789288186731384194524732310543189465929046022564247954128669165313346528035028847678255943762175080046364126491157465348999171250161448989415660124939565970943776745868635908398149603019013886553953537357299901269600118683284437750978568696397537013749664811654808886173716925812013101922279979786386509206496355366531635596188445508400644786886713512768357873620968159276461048155766603534792442794301234659601260849104172510257255463545830845941416962721979626043865469861143078650401034093289485086244623976562411773814712811677131359506807320851190898602514273214900771137499011247720040918313071906611687733041482910134490205229744534080147608168446297416687889173394746164913710158157480694988210960874396615263906946226608161726747987337830067895751621146986684410941255017868549763942922374739001309141549015121866952425270772684328795266860874518056794864729769532282511918018953120969564934734904326593853869747769121676196426419610186103088442105351876864896094942060554742425484385722723763549537850003323641164776980253722598948969450623671238584046031317655589975291738589208475555909476349358028015886445831824646023818918845157071888759329344855004066047907352605160490844568778750471079287835368743026067345976961495424291130340733649406824862175498128751279222727502199058450772730800746683587928871610448124908120293996639561498874274367258527150125031075042403808322849094333327082935642090883668750995657890863571544074981900377711036382095255689887037554115694479127911784184539628405958969767387679945562579521341132143336695854605909365344905649416701092549058505719009949290973749215579661654201348072092199805488607355592717968951515539377046547357663816661223957547980833555095293929500216070774039831912804921862137666741918392292014833669784847399723509357055665808344349583504136725687583416821979442394049899571268279988846943703369849114625548807075835379432698597295975171862008445368752094423134494630550426817933563677829372465350860296569233030317899306209125935315266051678737829285410555755234339983559943034213383603121196668185406591966040967499165529740730042672525464771214107495785185946074271594612028192392164646390675043033440709644416549497916118524296643297723279377466156168827704653554736694524081867310472951761239705526151871991340523460529362258117311087730395003177725871711064437607741463610867263187968900869195500647772097667756523563530328194749209164197435909446907180785538551609470165767448709924836393206313687348290373413427803977602848135044084202275747950354846713926388155787043874315676553360278977914839787444853274595097453934060021964496241329651244546698124950211181800114898969638361120885111295916896719063119706207875824840753921672118659284417871092240919901206410587422641308258128880031219686592907912044319894122834745833488408355133575807468797434573711352510449571478159057639117759081259250171996365127532781638880021429989819259035296182171754222618725472383870193006533291266538903175647587060553283640930162542925803332439161139983552259253640142198528763088858911970434599806094985537324916773784362249878843697546462053902611367423993092350516225638208660049192210568447741665244014502214316976584549639273882926935822157902461187414488813261385387706073107376565198431307358869117156138954482463443744175446456728391903532799959465577034473154928018832720309070787113586494976403682113364940332953922456876579555179667802160004512785986176542001046981938867900619448161501748902691678568612315374285468721767074407534113432543094675308575101008397240980042387362773954268935225534340810852086969303829770506282854003621936871697126384943538945616810331901768182317665347814421396560762048292991132500395030611716336212171610860655222971163917718957781254929857818918634638285572744936420467781023526228391964310808727750913531041579232414202990570416195647117763244852064058293363601545795567090622120275718401376035477588097772020923328232013959620847058885153694354242480830764431426904306946616228586441459212765077252046700284295060626955019866998445589940637722335775685460213410782359752891969111048068392901098418467998128603004369881659096659215147091783855187559383290024638950453929241136117372163539740692817858370902498102068427510519927318917314807589450973598735480688860117110587232516823623022449540965010030588724638095964690989512028039878471472531627912408290774158941502434115168055536772029307276164942028674657724982983447350680112559247499880715605696970384349865228450910570360051902506283431983456786405910469869191185644647250056919455093149507673962708145460046108743503561720314500308403004860985898491638570766133370480947937806669389895804279545859727758854890955388718923677890439655912543430204519875377522700853704056206046053888017488515765464306616400383462159532137230223892342560191066036726418860180888353293141894641142789853573459444298876758258955096933016671032923072256182514478784049983439450128452513090473154637314592186955585915094947292517329237764235245895658304357366393277273431175668567698323361064974952604539451443980185552885236542811032602097632254367009906795757737312896862287359628650104963378551732189711096476748732764417599026581900333486137566438423513616877232495620901891051809065872837265869279384584870840691233886531604761082629857479327827613231005275685995233154943290714110313205543772688354081931802712390764476764452723856010887535648488555675252380785503959778361469347111055084250936445721460298029005700386227086995936912347981714790771754706961572583768115114637918291832224730095355197560335335388834874234800762608447801859501532686755746058646793533947850196443648765395090996504078029828229631869336101670007248950999519810429977764404397325039180344876138239785956063141945993285812184648642280224213177276215524065970150559762523191575878524103921715543358345429438629116407325692406612189334865146434951814002630556060663640796186305688648906294080558785823221099373617333956075819972752669069413386421593102876372708360832214104549975555544245566642838369397936737948570015348711458817658197379941226696493722144109747744348440847299434844372202986395845160445481562462639611309409762693497686817572197950053728404742059847884972296060873877759308916311714267481919693472349753671778437968048227398883699897460788487144933765518208399056332555048647008320254413960348636388455945874692049647634584208915742897147455130560060504578205266460367691403815589115209650796396751350261436939740160158422549557829453450868814986719257853603165616734669315784455120005863251653857050161005244929241389454387532619843658226909498202576833537752686903232814405690239191849856273307114639237773040390116290220798272197820820170795027847904855123387114399813125023468766358904235577088013200556531349108951456263339194299656936545519025138046479072831086301831837512011475556539567838568220768876021682363509286995361807604304022961596134257124442094698715009004706317654734188431858519610848380344016742330448631190414672100064144913853345145987109172776857184808842559908362631940090704261710814846428351384346613717617008237188964793531621824931459247041228800061629424781735778725879025225943404614434068501336680730135166471533235009008178290586022567129241969315941008050937018892931469123162783089533293689473298436481392230417016205216353198346797818547891815608891451015159557386165549837488575486783641703162081806424965023967465688416456576374317244480944134349296978523885814972799801633704433455960377489474610617103260028368383843204488130383034052728726353701664161400600311891058737269938832725462178181269065578117279693979788084924842326969665188667577960413312763624237631935466669029610864797029050189334693967525475141017154059322402108391300851185694719261396956708688965090007402123876973670539184236653445165232549144023712223019626837627761907596162883867431174850897042178494007947513014861952496681520568644893247593171604573138643734882518716056380505482441971034973983447260609432592805959957308610803545647381838146381900342376191547275343381595330934666210915683941575429513216603892637690389563299095105311644340018982260893229699069380872024241736618011026044565045981149815428504211382932393086307633165283452144792399298374998775199906822028261206582117401820475035634713603339291062247485423543301298615732938083034458942547262194373381321450621772745917164323012016302965403076308271765755144915084712788031298267671744831047614409550845615486804082282784810206833942475346987144004266449323086146952848864112515961095203706609696128728017995178022773303616671053914276467341728287992082033053205254319158186617929614172641640420487243447588132641846403599552665238824983015336673625071601555533401921352456114182028700534043896403310605504108957364462390947740055703931659762734732237747030905189385519593380853706580154634236043093920840726313304037238296602915473335451411621145449208389318793956703456245956342767796088362237860476562181340870681456729117377214490310118388008710360711425167759276492090290285789986683347543614876883132793756954863844652376015961653453405559213217192265189821432348815057702574869408049641862877350150892575890492191218773657277207471514931697154403167056375954869801427147577733078453087676005015964778611997716204995749948312932040563084638278610913469314827725291345398954063984821077550427025129153892843208587535935049699741664702735727110875210475302807860001925173528717632367167043620254857011939240449614018739488488012775301541642486218935226281822461077093127664653745448808728234102039500812983875429583609089558803868377848245788510795769052322043279555670428114062026149519284667753544144743546231022390805579520413199464573253558548262369919696758949599655045279971595410916924129252664370417973094918924911840344072968007275161265570964467978375733301517367300707849339481951616008784658445303187371151227672776713616813994121000960378558692991082303493296871117653066389474605745223593018285165267802423464332813319450056030887678224237229702558021419886556803702740894293499196238757392745290202307685152416661166741454574414260034066324783159640543940034480028844921723803321381500823467376053811646633611941511679998116559735386023456282575554687919881593167893245297591800143584581333675942463623414247765622227072251418164174525103265763747666444618062163534467111430366108551254821820416868786532893609699477408450917121038275594285155465409577778646857417808458076894079407241253471697891485721657017004227714978955814350354581573325000325855121365260088431819886335824540935612171628727873909919345785061855702067168194700873186094880675979987806066710325372536884463898090451751885176911728814229225910140441632307903942176518399042415768164084243850763845738909844121848347492642997064690609094633686228621840621395556392589729208756230267139010112975095543895350937149043388566457286409879280473962479130013105447458299775326252863870567601312058998514791970072347751326307988014254795853755712641212718240145332588942769032684903212880730684647737233016695114378910004761836169581831115490713616641462238055366639623277386652390502885291497411506198384255742429337708146507786879074085798218392536071586897259611426079425288680717275562346456707561632739602503456954282368057211218816558085962042720001148774905304113358279064479229809725338872177015990844158671358181168973152864669103063515875720133116923412209869799744602749378171055190469505332384427338923909633589336597606468144646044799018514795352842249134828668543364851182303876519492991960189866933056679646303254099964886013878247838234076839193121125452378249701437051259989090323059345457295131604289820859142280568128747064759951725111460935370972473371725008224142334773638381906993388936065943417031781073208241426960805254588530730521504646826866620718256211248685899440968469238577174468706568901466928788363925441505114495789362533763715063188145534883982816098656125735516581163699744022934285249279733085265335370548449933774462051707511398914302373560440652058564133112762039077451938691413048511476140052143524118302581478427424122146092498435110309075027344197872835289178317582898949269206223243767326971276059673307398528603708624703978367470834996348618508606219414077560529173056705733192068317496734983357326502130266938767258723747465188012071582599152247829339931669455426249885794705091949109470845663760958584427795985643152176402639334689172859725821662955421173499211743654429101550674068222459673641927186454599122898175874093078913212039624036864919597224796933624661477225217854874611465936331576939341030592611628027265709665261435726464855953114870347590059311388052098329798995283213624359308725954098451091889394837303695310300517568110635557300865728606499419203744265627778896959737736484016442534929774480818927965749617445968884403271490599131238843938445350230635129912330222113297381733304947916087597872826056793936875150113787944238808380617621863590396079144734694047853859959381891861252252807035834043850549795386882159445223731287306299443180187670184749501085695858322531221564958453232671705936156580212887958474285420598286874927236913244520046148494093674546578396682570327097195666750690433122597266396124615009163013996218305570108147109622089613854511395050654540816245232275048748505921368726841517058655614578469898721621406635457552312425640018321565788927509552478408437010258815639901180553658041138173842870856182632896236860533963712509805552577206053474790396395058390520447634885119327535902535958065638365271530766571859141582743394155185269683510254655414520196092161889351581686899582048805543427705442168877951042936814736594940358505501027050121046133497589375328711427801252162562993038119787249065829729634280879177322406438674522518380050970406657031843737121647745254069555383510889316461194894001366789208977815747840248479900278294083129838072261989262431887702351939897796316917221724222310260660003439459242124523680095674136297888284344990515719474065638715734446848995048462983029280293750445862249263347130936387982649775055859023482223258326540133499155472659493585144275059433898920510946462112198766822158397253703251021134884199558840591682690221598031414516463263964365933155583785578886696908483327084234181956740200351249747751989849612523412839148243362191348360964895247093904121398427622208110274486416393258701113277125952570139380866475072521879144332814962989962348362701458101457092538837202891067079349410393935180649382519065746244103867699719076663463462867708753892708770493907152478860515539965684663678928179007536924423929319777510794782014580883875224412701006509341027262868798750204782246152893619685655181663380676720262259056701790708751284565000261440193327832928987697693214584478837241229896911016522591159852919460306752066917292736025836625065792611076191877922994033224048878320316820169189324675922980173822098356851237937611745275631731633219679012005949543536250669930844753359322290548550600479478646854542093886242195889253205853020886022959778210612677988319693918339849731865350678102680337554308136051533129343948314328812999911619396443415953072371754988728366249369367654328775465845919483562052153994496840706264925126469771022825916268380397417353259769463091580430087246950396952671010371083577597522516455923314806607698266481244466687847133323882573886736163246530815705542184831818504172665829762038374566391354175536419940161493159989750029225203541681392075901703350945449850057976368678857663913553766844320776731261057511198824308435604806003059538138598714552186312801228640798804932904550343099407575876490623821047723889438777489809108267894053624828566666566378630830277412289314182529186250024555218603171576781791345274469548480043928572003266269688213088190566629222518851571436596503922178154937443352101542699406994474251803337813632835559846950025193418985752430252591043187176912954866275015108358907398328715162018190138891363807289035027022373385275125931467019335699344816446183611726681841780629730987481382681126947854787998939760339921628335323471603005794827684012504667273441366803673472579232401593289268800877176646621107337069779082873407636293285610582293547855739496714970826710195705668655742442668547822114750849645763492804947493399019483500535578459636490897910363078118661111195274952197791854930589080481287019911199790426501868574606720703818874644000852269549637400305641288288497661480880682375490990230121964952045994347246544304396903386600376510086243278180542769366837332081520848021863499741644932631281758154239679463762970232724812206977078977809194129975623788287477726790425783604211171026753278591375464433334649699420900525153273203889631730140490628732447261006652957137705770297987949314215344912705101122117172562097686621983808617569454898464887501964551710052842915438922893167691405209583559508279658157294825016671120607437011155917042002591977264826660662898464049597333741607618562625600206081096113710642605416159876428865952054063340113112637765456946756161847444602582580994941491402273560163179110284865464484429549242365825288818339619638837992531348645713409830438408942477731877376986716498013755837218730691371343132871604875347751325634524240507924222002926954862537560960721579331970657004489905852707502700576201925614268515054656654528025622971905978545051995568000024129786609454712733111345595255497140849544788909037718768325628448993401804742218474644708100716214013438301999014929757193343594851954674879775246046993422447902875686285448448571930200227427707625076007853851176664208512496186387178036509897211294602523237265946970929202581965815885812115021177366862169502411203906387113870346804963226510928317124381849881581166753238698849952604997026595143225127375916873427913535189301438128848945231493198922077670734961571039296418873346473907196538142591666944731184271426240693550668083601598152873706048116463359333315563562986613013308933890608211877346400288108723923905299874092653314035753530433498927345367991302781325982239617090990626059491235729951281130973580922456776345961904550763725408484943126457999624592039530593141061413916772439973516396217700612631346631944058919063320670412905077543250594470596533898342890484788622081834701697870430280959713127856688123354621340917915277736316121831811059602202999342865908139995201385857315488000172966133102202726421547821042729833376664419342969417574974253296219170105623384651014967058906658836911854832288449643273434286707272892750671897627300940535454244192313735830700476489113700275839054482591672240488594698357138227637896282916714343590055267301380273973374704283581904575600534107067360995535575374877674563643423455310591617576061527054939831186963277651250338260278591579742130182356621223695137900646977878785412764479719341419602180764116663218666546897466820492727974095727207860637953499045591920619388765997706900880274324731931344776065170317988663659075662450018111731942611623475121570676837630300274347021519321467923029537241834594718892881584659615026140818411543308446755950678929882554880619689903833785591077825797566511308920458974583593379878903021794784628212315694535036568905720461283972575892468561204704570067811678125359964356242053003736197418188757410021289378022097555381920270054012074297695989361067775487880882145429453790435809138407893756451192189847104269149457387108138664258929028535814190373030219561872020556565059616438447027844680573455246462803589862749466445455164589030584649472797916642965375020740149955287656386095664433867064410579417480834022934525034281170289531477536957830146210685776138801210491656651992562333360042377319164319079569438922775949862658794742777536243576451060683234194012164288384981622696696093295579344686416842605743984649918412410738494469122913058228186973427614496807584144092206314444665449622830160772202755786101015004564703179096673541582196285620273608116801145184652440404036521917287153684486165257354799199775251239330497946883321483999151315145749087213616750856060403246165430017509310578510574050469955210147246025715270513056615352060263450146329379406540404484398343623932068512063293516218839082357361172153037627876831052193650432106889615014177566380795038410666130269491453421665161983726003023346092880357191912973191179409186259085208135714117143996440130482600520248591724927332745584452192774440423457761918157788752277393998481193037694583856813112575438424395209068884361637201700513269286472312198600151841673592236245332398288441824449412793470204746371168728126530292062368272900173789208804078626113238730014456530526240680779451121046873527993512184847027872747541973561651998489341175804425694671374049895389088101808643991209627060681548866083881655156440467059361682541966638705143031788157957435311358688327531675737468977290746549850222303966885936660470473028522431842064091636109387085931128529750939394415178312774140173112236821930478934537056836729963623409047843581832505725613506298987194213369945205201332959246323341828354043556457247701931340493424114113234888691242931273146045072889206766354238496625802424478866788696745135354132143081070084517179546084707239214371322208399996971081258375730293696647146906546507568597376737948764536574655029598032188505672511196449603316539831709451720792226744982768173778588342284430031855242666511468939570925559412756420410651219876790991046980669063606231276068296620660508194418136088229934634066211905663519020733409639222924173094296002354362112097510094854564947800939301188650394630949723929640226630795088189461169384182674497358115540826574314531450859602279047350395582609437825777560287530084139635609694939916400899963633793940368576758129589394788399550004540801405086499909429541546476754605146423640060713287958782210359123285835224856898644469724916561064873063188391630073221582914537819820248198471814232683401852483870049631799963469059642163555342222656030024718389576816965652203699884516970404309398453536473031077189520556484368224631572087767285659472271580466249474116946252381875165800529748153765221075278115164615966313367676476088364858227851419532293062908177596004275481439797228351340358391361734803474428578162161503295200199985902830438309877464958026469290805144651028173296136856454273752428016621387011856137961849294153270404335162484343270690242200852475838010005698795472507935555092760253757650698161065247464480645836107937647474271384334977543258547830238949094821647086716345642909315322503976437994409813579753298647602693093617446015953350464513328265418373185904394416347829861590737494007428384980846255613153088930984088907244535557058155767941006347028851356820088244965138793324579227285407254130856067229497482316114577714150668850253791420482690523590162082679194896135498802837827442208449614496481159072958289765790530479858642158333726110667624003563690633468001396977997385635697125914904294069823510654079561675477692651411053356019022643017392732874191134614421870331184375210304420723284269036216364840595086423857197039326532732401530191664331330221920358710866812104273538288837190769809256830723533279162979770757246775260819206258802821152642356548990157368541791636243310493842881333003449971401949503075654639653754219199000404894562958662420398719850954317421655312036787365746460330118602010270342945082696183257978871466847992307148799429512214868234490127962916146323851096458630812416198267654538973440288925986187631234083646130336694588630083434410950189268363234553587588232342555529636510980787715863565830623401393350616197283547768321068105028111544999281597612078238988663209116115829884434465678033229280332588526025771849489200945862781495115980631385461420819527886596118059516512230378973671277375089349935525933599350485783485092318278726796721903749082118325568018498167382971636479119612834376938180562142399630787153164158092375716137303190918740110204315097287360531813576311273776428404280184698675630504145248406899637574875183725346312708351445105782711128808051209810538443162347196874764555204624187623627463432470461251880147866067843351713979296025339529219334908758298089465467053490408531833661809959450913518209105030110769062284925837994655594932386612724927719421010101798879094508012176778490763843517891662567646943789109091798413544001674056461614016385212690515629780866120782834966044284001852093623644545179225116363625211261628987485196168510906573115726468557251617614823977845342685570383526082818272236932748025653662834509948325879891537591829092734518184397891216230525330784032131038599707376285021658031816994752667999593189631873685826155748533825179088373731934304111181538975126407233722881238372952611843943781509042291570329814083749491566915235186242086311553468614460568946465292521293272802399320609580929192350393819208088053554755500846523035990757363995819452084614323719977951253813357243719537999250185600610744612261316555004808442131564665305625869425258986699583038811438091482058608934770931200181626218024630910564707007143401853794154064306181709545730015552538075761373179413518339995181330107628376849896553023619311819702158933033199899623612721256403663259166143463446132972107337542754521527042070627914423712372676481710167618400663811099807571107535333293834093431625339631382932689866960025328326786138111065253204181592913127218334971758064242588677386291968716425773513906839145469875107095538669648103383136215580719995433590827244787971641062115700088570313204512543577746111850541130861360237693235191026502025678345107190796183399884023605877479776929479707376087865027320750534993934713744419898748665890386719665203089948656442345292069816205273433291904996950438692946500828650664156846355588909405873590736042787911084653282959983458743027708814819858179752571112381702260384838892975114065855025996480084733150444544217704698351410455436396127796318396453803399411555060915170734711505083974596936716634159596306452167273718357450047904087306303638732020136940348141669092041463983367215263361472175008781968163442634043732242362217000545294100378055817983808880832542037777522975252948762345893026988969490244570400524963572386399882397493080294755377181902793350261172402399580410776268758446930937877963941311975849208145720883651716694406946392154963888077978942910375853992330710991916308713321308396769829948749131005237177906920980596155197858603292296568040246818458841244279965837036061183336339902184642323062682703658309073075507139825045385295804542473136216912514278784966753171800987999987492993584976127473897741750872231845178458876704400095235580152019454840813047535320064447664005017193510907614516268845802701185523907461614569184554440634928403755725450374504025170278253667430698810204440971638734382150411833112167002159586907665769365874156135012553525515913440713089417846386285268991938069210327725617977142846551029051187896847392623112258125695875480490747306496789039331085014743096326681705997758223183055715439591048725616269258493761363375798661643612026319711578175550921818353820848728472783443002623522508258395889896701712848227269638333147845733131226762470152967046244810689333237527214358215742545721721336104491691359108451586952901203196796939935540571109858603591479449588086542231871242940567978522104197582184999379487024492998501202605165337671549943955727961443185791991910640766244561056726955482826301355955999095010738993567679305193065194120160211447333715153934927782952047421597533506927757741633476763501100764530706718887443533081850526688303680956633983533834013856036758234729598520252726999385727656698591649955721728243240689487787216041485697984779892266013371605813111800743583449959918869053389415079461105561687894672842072882740043471054656786235703929823630129210933477859024571386153428030700604168866507835347264744292228338446205225799345506851389676364749852624667430471387389101073884348809715225380708500074937477564985951303218928279279261287291273641252314121616189954231069506222322042203163759870892382311852543531109379122501181740982667501306158189860691386051099940180530620083329514452966607704845454801020396541836453673699995847796462486064842421269194971832037892490517480689744177323249007818669948150744830182955404133956474722339891100662079171638263941359322188883590766444221836827020906479912745904688696452282206203551134838138717078772326246137120842502424523373566251872142567494578938504319185776859968861197853037604449854654509883171332939132857774905531592259430279858750553585414551595632972008820410449708609798505383295690219386632487865608136600796915967430925685122814186005565816882259261799960177427650932886781102762386158222519433336767158054108579628599920668480541013843630607083493481751135726119406005643474233722672077983790778374806439015568522747410535620154974641685586468640980567372527969755277796006223514549053966112191862692658465910293902574453485257792365080667021527244919912801429849756028774156609388591597672453219428710374944376914552807476106456861676660783882165276124853462556039569058258561866603909805723405934320978731015888950248127796456005605016433789698278117830463922042288316773953924872000389226571533618218243447578790734148619649200035459003540806518514766906882698201462286112871198683296726792149617730198797892764991204361869625049224597715152391117364248257048458489542062027702111605539623126017981008689133119964486998421701810871129838174064037705506103448650550870887923438084529990996451425432288496031704377990522284039744633262207061014339504084690259632580388549032889775528734047490224458015687594070875755062346300187679384129904519864103847007193057036781351956294392720480561990334726064180808831366409715728855816866429310956235252903085734804385165257370825335582303816108975451630349268815719878412215930099677356897566528716669053236014631504574029859881560070605057219185439132030432140589818234436588496176635360499899088243137010772644624727909279470467227994655482297398197539257695663106424014910607397401160231767061533388032703976040875576601546831677425368583559863506718240352552345020805158188733423933508598238196894833959742887970861366003927568554432883077791252189199826032274424906272345819817523916184765387364915747081357192073346395315715444003008137510265045401527362270970079646681296552731500058399775650039948475325234905370960164141955032469932419561755589191608980115282564181878546948262002524317015505278780351824024597191658967752317970227659507997764527810375814445730718840521851910587393551881000806484005536823028511198067914487547624005901439189533583067681757479371255966851402659948269469470797209285576719012194808688432833079584808146061078829347364923099875400510616239166002435363607699773800727932050178954126006924034709707781558509045358576755764095507822039676109418456188239157974932728573694222479633649581294598729093217084350588843800276917431686097538576719141036247342027193054003171252196784282217878742370867275627381978823197435837412179142673823647615713768366645985233221372181977235026393172346496779419736065573739268969657894463330116756668220396667870579911191227149155915464355942990390238016339252026560914554071779793644275405168645796953619827308390077284049618461770322865727028432784998940326955293454453542266960767165689239989958546246610756335235298536184926761269471964046420627492635490140743517895165746876866396832511542174542105430552819414724930850491232389777509654934662942764445591765450798409587231327796776452792194159998682878128431545462615920141858380093172201719793476742391033236450266675946956797123060669087820911987897495589089030701496872866367545967089838140617298970507130264629630703809528581495712121760368753454051642213032763343345054603885142354310652071603154824970617739161354963165471342364380354107614006548630304534377330018952080188774319458518655059042015461923241767903130577413849505513102208473717353038531772572264755191277419738591871296573880690980540549625192445539224608668997013342379028841440520678558157206635867072954349493628841133607463300457561869500619859611807099999019429790674696730755973143481710198200560802960487610980268956664031287690669942990273564131616123153294754472622458286042779791976229257541054924112556059620321214429604855504848893692808202611802210014090494063729584917327670773561029432728424889351040759039132247746962048556379131395712507752976710913514170783409593978386561092960607236449201971973667128361267714411911396773868568696263863911182575907537795383946440187345397630651186889612103095174287315463576461638793782641184037577163450594406758763900987617144881653378581676076601356847465611183611710821206594415154406579395474018661228390791181697964198231586558572271015065738486194252200593545152928542040535854195430029533676434775009183730331852840622142796967394415280178211315832961275327927010994691373620183659479325436630474433043722176716887210527532184627836826661775961539966664473775368206791073729715217594907338009821657751448775994629556376006577249139037720987965477985679394467132907905476908469212790854917731767773369396500680505638394415410020791916611250687020161226919054196653129182160051447078116068251610848613180842561944363951617402007140428682365743923088666967617905441714879207921376959763534996644259752271546804606656130102532999060597373436513501262981856900316190666181685175865988345692695895702021378180208096738234794313918349073949203232104391938121248210099085911987041779649884571913800039089214861016674759303935148251660506386554502470551455633512232150399989754200836338141356443353216967986451593676494581733123470885201659936662095376056385980520425020476077475456308817227598858297786941034754792131764372738603996081844608510758252289783759517371772261453523366463661349126956771864399139502402541523865097372465439264849162998372893143885931843240361994417695141096562877216550762518558535196925370999943856850009848543753426832055231611300690151174549467076205901242379835478131578278057400349461481139926434297489574218271250695221115549096501006714679131674125013993367266294914172187075950750249523377503218595049078277363358494345115945490815150895746350686743179154657261470441244259770650186981123023994975704648857948365936875620005405094882279978854970663801976200893391070393464707599488696128026659018758065641704633001826784872646166181298700074137646131936197290966968967802805563142563085941466841122424275012241560412172926699495865480112466634636097489045540012080432290194630226989536611474905236255839338875776211742165336009217823525112738476099467579152676051561162989518850067608235338682131342946910899682460919972555498585232577294996324367356825685847979866385423314590303592690190916656102164190353573580190113595230073229895450033430722840612908762982389973699761580643688425075938218841853325170988185118249528668167210586283580246844711355679556120660928209919725333378372015417605890926926338120038555253297867220126073215722009298573077651873690601626158114281321318846491650581315359392056047364494560857569323511131541566937265885662403826538748405197897370543542042935844260805767875042403826022769884899426843796282547176633425207058081181768132750038473143356378904343068538816562555119394229855280007721214385963368597969755470507245070347164246011666174402181686661566990766791978410104983665921016392430207142931272717734898100826540557054368265032315902295714206771402196025718426678688788452407419154280087851848321969160224508106071313751486966283035664016559243156193842873159116714788987295351219730360488218212836878399064699976100990284061439873934033378969069450069983432773652368091780788363074730623424799460834262667613089328287831995026238878901393758660178398398202449121539252954230828252251372364540468656480818368294599113020948575923945934927108741265620579669517124613153702636248893532537912756792072801173682398686600471789235654351666163081118401317608271564210813309792015645055833075062911153573517708428334157288627975257601823371684408709539996502613568330201447157627824819251389797024114934560706507294871384843766103294812081099594717779482811427398049000570236847520746656472885325109619016297941698017701540206088905466615567426669898393343786370068017705335821142096702223754374356678259643758857108015828678354484322687238867913548000696577048197407199698179703195808372703131479956872701174276343822301367093114947416476377886993912818418855789964434157499828586829659312325678673772956825404653923754145921794071500462405902527025274124369961037719423792401813190948582070089453698280465963994375493189565044297811534068331429774567147917053639974588911282771068822644621267809409620360112207253462136031811284016686598646467256421923669965493488154065235006127499681535696470854906949752474855896338864360193276302793947170954504983389956175740532286851598797823491970311174180067182627011241836385110200410255254595390739340288389578571236585921693354709399615763500497410481007364163232375725694517480947743986067739555360314624763105967069025697841427199720064388485088893791081232641405371704363916557820493491810473795546664112538506714034465396925856003821529219976621478507571539551575580651912106553091363454798278633291655917405642085832009609684908015491733582763631235987578891601069828915380403278181160244220901182760843606681879406256175839297116066246136017387052265933395599176780731737840387568163221497395500442033912532200921033063465614971806311089045195512392495478419998145016744426286359794325774605575373876963590730526694358338312820108220025264895305386588433273011403495569593745475210852872644587353457138384008553383520798114676579231913250804715462726078505378379533076712752836604917138135123370195625255227456383231780129082506838472221573161625796666976199386299723060248515760771368895607755098622064573252774415689160740457043239479706555864897047249534798925744688684732190259767123123087084293451839281344001477618123476564171099748431346820533783455751430557581274381092850268654326556530994322454225692298489821266847283054356439633220605070080933191193398331209549220857945500317847610251667171865092024976941842922396983582807832657082551728949952902288599848195534964635556227988399926358410961570552597322557898611205873808371898559753991047336980769622942807067038031118883182989642697983514015515358639762668922286053028612651535180407403950168124652143516724621420840413229514024891065109914148583420980321644316115764481799379879849513986659009769657494050490424178130351707960508147530473038811527237172613948112834343585247854428212301361313449093376070619224593033384150965088083381879828518451817695975645548479018902436012833496174835037101829681503497138159820303424709371744391879149457676903048810011889987437870640780620153387665859031593386447262131023646720047190491316256195957270516480447516824404706699586200991606684648859334332202921377174625280525401602405107710025797466031825931861153719173598415735891214742703910235087502487867578780679800666545625153420570589261087313204047631898799934638446476069554638061380348231358571317071373406343631816064918703354674678422592550891623022240893499151664104524241696962034482181313760879802817747201420786811307595304403551564732735691691140597210210620031305394313914663510487617241208923394718428262040086731021136841862397071756703904317769883605348251066848402647721869371732422818334398687110466269518582048828483727716622964644458364950548618060188197457335916885469324569586362956067108612399297316705017743751994693388606820892746347155745934611144080292862380835272156149158010169558871918879956649257397050607136151313785579024243683609325695028388415425978855597050142052968324449142532054770233448823087063926425611005941391616727387074930243345917610101087014755848379633390885994059000757457203113199050474875686917331197190322663896841865633742140227451601070326686291252783258185907647991101316133511880584234385781666143793098003988231407894094920544800055228523092653062950311774802839614006856029990369921158532347862910761334538287898490004662092585719072201998267113761545243966144070186765314636912203854997808961185760713511693592803353589097570165157772805339157958316329339166678670133887773536485925752768949000592097198710301805816622060721043987399933354747766799123806884044273415441588345723109976674954115268911613482483436500779942600824320482589827526927558465524031959522816485996959230717809718765928129519764280274550434200216290934858985577399965043195944724770475134035570909891813961028198927583325743648091921714413582076456014720816458861285816502578147888055562179243205412165628457261347314693414024728159498091244325748112485080138387005308939024130317016841667567682202904676259036695402406540699320419837202558479798276535098030457437508014791564527643468064413571922826006558979297190461864769988119735184643285353794678433894146544977802203901060476583937839546541124889431304319231587990548292177435964883197831264170379921014899494101607234093390015790117891243629650029491706479494605341586462884360063796035584842563817235656391531819473732585095485485291427846076917797049135591678859850913185280143228392772590516884428729642129893804959925787034357037299867430873238212838920712942410188228539266700053077493890802701499932429575010965647890970471696679998132793538594440250121313581405864048131952356388970816229583245672576573202263947092898827615237480260103661520925208878380214067009794680056539937209051898876100236575938803224865674074686111530238078848937414285596371381490194675932361398530539287267037353242126987969589070897157459941489988927938418364710231723514180949971740583505266757999901387135984750639625036268624330682294531658700657467916454681576783340190795410194232543363598320278666686959044945189820465914403015620688687763509474903455478174781969415267031916992837510388703760188850216208670455940612239373448978017469827097784424947586535221754603388158516714853748487550266741423609031164170707470048949135877949943670277608192576610221963783742524148280763226583420298291236371222761353633953287483655554262188447194259746595019949375738220376653039731806263729656297728738230229283151539320088209998143068492530505478067571490102871251118769717517407420397977953567290360486065698153696883805239429637908851162706759443148354152190920639190695280583562533046030850831605981753322505566277701041959986961355817171140161728051170444182453541506348239214761760586625361618595964242068982663433915281171368108583180703111216946677041049646893022367396040807803386979768051019115819757243474245851501599690726295073285667263192668037379794405150519061238203034751268601220060986333484605796891165617261078687266950773007124821245901822638085270553905841432461958991255811565607827705786155800282606214206135396452877011963299939168000160992180784980326830547890801820239679786622948568242754127000930048402961681092800905037345286303690325114120969125901168383065661168115313033020101237392840381210121643698567295599442497566447478151737363975470379154330707571696496395817183358530970597912896698120250600737787007853002405147879278966332992792000155341209192466665091401400712389878086747902194746403034037981310657416894739003938503371661219786816008582706953735903894927981413397033044519654591806357051151148792149462267970544974957922893413571185885421751355888543662039308152257967038527335238764317328586171971605325469612526700958028515792017033841736968727050792882958796624015349550640378743059877401038556192937341096040299959459545921571690621661582345134481400723642368493496443398300603751851978290923676255869385724097590316246712256266207156266933191793455754824414187875103373664637735380573268479722245600815064942901799079318694260966100351696161469997731047489992890031636009727166796621438858197933896412985826355566062686462205589879236103231876327944107840271212876651438771571126631965553520102774809916894546458418903911099550055276035074946376614397885289810603255844013154838140383632777065663272879424035864081435882501198369847571478734436536359253665565648885207853666725091275042960751512844044749504015470459137217970242103847149132458631122441627677926165696424011589053435185677582387195555521993458447043307326744027619561832145548022646663926122533534752508074535130283619648569159942814098027074748306121184166334453850687946856229193944785956405038978907607703507320810009303314759289882488626360571018832236397959003824768312771908119569670463363075410124433019248100132403737143435397799475170613774025875482636043146472717993146709025175536332657314640435206334961948167564733912726709202167245401810930313449991558485988470135735363662159371286680013303764316807547219529856641230350886666745225028502265138203127388646899695902171089104461714627989192451131136427900685155610753695536786305995254727325820907659934319392838860526719989363879910862731239988371994513478319544496532468679458668240010534223617455237082806514676263377973371234751377714687865320906818842550649755888135796854456849046441531164836289960359931543461282196406942509342100715683367090071309620203904118713474314485515507552372727075225471542352562444751024196399501385015133972762967388465196041067233597697859682704332535697339908275994012538685930348579382493745028618295770789478777915898255885708650401429376175767978301134524223224682218055711407266003579168219323521090866103044590643140403408601463636945502083337491429803299738159842895068905595837900299176133960987181893628461741007041750392526911806718577397284667720930812313930646576347104513440406166188646614543563358849207340645318770547638050426954735605736020647589093457402596711676287304065979425891597147880537873180696580971291592163714334627443865532379790037734583862378976153205423099027011099891726936386588535779054600554894547334070800234436342409371402157647723198998724684089462541610200834725893935875098881572406654681929543974788815065446841908947051640315051444923806183882910951158125644399981416141646482893930060937136088143220350773519022967368343722434550697129820388812790040506002618353028868055333939027965907566025680384467450207999610471411041395468509005396132295231140162227809214764076295733529349600384455025258151347766168193772596850645282427965176060313330748936941882302725349058972002817718803358841459316987552574361683875780455403662468142400759479964432318381386235175400908568237754329245930120067800546834508994285988502033755508703160670397981866705380371671972319783547285760099004152027488633388084137201576243209106697303931991346111623719760180432177938362858178461930026315351318372686271681031437607966245651822419755156269473290940552771698999732399533715820605752817754147823323043187617340897895113556122951066824348592584875852176790101936294089661054146423505460692319601437654282545103334912150243915362032244436787309028153417286081615407017001749561277117201036832700364784228969939453711924992590666859462877868327299596661274130289267314698120345679676762115740503328662921147434627228675762809295562469044721172888458502634686475354586119625166616852508280079274289878866715998092076237041986547891042321070980226070620126317638925946274151033092970616824435241275334158315679286396201978128118961219443282808810589228284539064168776124446276274304394699813748500093599099834483942471057677425446121096912401050459926769099483590821981179999322333924135856970614128308259988018766741772799577563150595399433367327139747201754309866835402274794277056742899555179716630687030560094769431396195036903860636368459551745050485817230237237811506948912450577689742963064976605194437490182614640642700052211263942528321596071259475832314813578257139741183962452070198600160352130336584729267297566921186614373820417324697703908644504035183211281721471954036623210764990105144455482031648013324713359998402175927875022893869678489795910771926887720038592692165439422725354496216053698516323217342380048551850260087752230668671090301116199392018862082778306454489833504553808887493640204954897481823116085815565644637771200122843590960256810067303894038305753478648018561136925347338257275695972459004950390892408297055857806041960005148762436979578552638186753449684598238042263124748122956576912261052596965301627045970168921657382988086973976579289815466974344657969013521875861244146570980480149499690071378374531345733973477789464892287708024233595716191476264252355819476085765594831723804960911124424628523784450828825808716898823774980743330465338837803194360039763376116699922029485778764881235460622816044763540249992219238720728443810386389063134926805351623170544718897155000862029508834965657331537731590377762799520588592870182317691061522856258550097168910528472526076794623207110368977227789478574691695190489445091159299739571287852054260258483122935973935801324783652041836492593759252712791111780298414058994000497346336311278583419465074517601500217816442248637786865366432137517986786877262502096919281961963107862334882777848435541411918414583881981435276065080698693686604796591180963023638534939648794926603103878881780344608893600589382171511852138600603468133249546306450393412993822671546696117985390473336467032124089672587678331465019620516614620546450658488165436037903969629382161825149149364215416516753249930855620337644384501561369105372621090435224042960181544768290689782944039900024254671908990523441917749179060794288475562444255794120003996492889906086153600079579714173591341136460404343658804439123905010533519328292537460225005931487460154587590345947737462613510935183600357981798217500971057564445667685483460568409211276180217094173832582606200082917352339934263187282975277993357466529287951690064508630601129058722962042742746903097183192078956974701535966223326610794998094669333642481836937057619533229726866074940714244956745177809706075040972219050540218611493592691796864441298547808580096818278916945773193519473812672612284361176179272162679103962112812694312687053719661507182705591334086904884058727069054672300977750911957512485062682734395897024976805204688893313959908631184344237103534748834546374350324777062816540600801619677019713024274580522697300862745847722061133259682339554906798979314992159484887232917369397258274997860149842725882766373723430627374266193929403416975270837143730144930162054544531722279659964092125972119909071304390220330536186920105382677366707712766812827959653027113722504254103904177596762273351250984876789568456991159400870713322221501559894615093333084960721986400843822725492136574344086698681265763951548935449326555255668330829210041573152011073324832192502023484165169008814140297910108228720743140638732456716995310106361223820912515368697329271415948282500924907845570252019220765162705255146385600861672145462617942913656233970147535739880690897794741902393790590260898219656677799693347247877626265774611631390851897542756087681185887160734956444373486403608230653567428255520732166264138203463844169686924762690005005060052915525974460888754876122806677180137467065988010531005712884690732466222255742530148614399726759061089381040993748949413126820187021412741526618678725051909097049620552444418794925904553834408477359512525949371833811122765943254855234889491164487405949636023655697377314333533535252631936928780648780885511213121970469804486523888280383110441845307217199053799860345573412858011643936776563432857725742130757816870606151242144265513270036835874023105764643551104808192988793718689876117582923100024300846061905030732240213066528203736996801667918857440402049562131036466528339268353949146252435763087184467296562249373582799247953436746921316815546823751783963871418186270226213090097058506646386462838346156132919900465056871824424230875413131480999308000511944436069118553401964164535567646990403325680164916788982958784180712459110890451559358691761426503088460218787212713019277855649630337189567453441192700979429393310552432359987636687107033339289536765826227877764887775789656609232816350688736797202639940134288225883432655086799090852718827129447137772391015306560010009727987855103632279893997770882342831306025244889201794673319022638392642911966033038691323840143146150007011196861825253840778750815147729610652310362174720816442559841383724473971993603272142605741245803268719927456702522057760848818671969252498398761239442636533066576699953616833149435634788325110769196496445537699974537986068552234289651215216337387491858263424322654963069161654731594912580640283880858229581714895172756258982919495270244214191601652375425913335960663846263899896404025486944335589539255794092011058237966902164758455380332952502608414302460865044283081869610719526447991935032087959638901664212446110386250647840690199269141361927995896912018326955005928773527520175494453189957072113617252079694311997841446387722061455675615347816601757612314772650652213291169136537957490828549613335650498814358423826881382320248415140904833324495533463035056930029333460857775849166185674629909306194112333636110742147775567232762491398157615271357112706811365333326064382083553445920517715289010355015395403674982526889917092546898839161590622830242222928019484711472160708103340650882619864289512004560329448075592081592186217967779971817724778889030045428783206096252812148246563970514289475627916694501692252433969683926335682908006551844647222926667410585327082023840807098294553305388981107415113649060260371312362216492875070987951585243536273555621922769670392975357839581625045621947382967352632277871196047663257876843781290662298898001602601901263574695129021684812814801482410004443875025577614060742006392802710659547427275807337864630281669597042641853138302443842649718255285811125137064756544673720126252454297846060476789170186927463867084071325710745636733608339919995374415066229463063210810683103769044707599148935202333662624937919355300896469413304886635793911496434533850010089282278759857252487772817039721630910923032806462305335688937240817164680287060542960335956891118820602947502724648850748479691571955244854276905599973187703412564248001395192662641715779469240537357875446834444838819732212474364627599377945132530367502575355183242904215282364049449436185665777222135394503140613167162304008406790318379763664519783782246870104812410062772846713201783942589891707280551671327726541471083613685966474283427409181079272006600910416632264001524692470459157726379717392013953870165328092445871189804898502699599670563614687546073214385056330429607923505467001995287179885925443385727268140321185090447255391337599011868491431896734550999009836492817700174642579595797012461801695798427048860121306314424657928490498557310501031158347155309459621529947346115770895078882594923311915655184093356822314104945062369664637641131353791960590039607348294386511500047799830188831994498701823788288938581321286737851524607551533866256462518296229171469430275265343932160554527283755926856547771277407480109599247312358079449943569955684539483250085673344551409608421316091582328759858461648536112992692571759636010660558103033717952141621769291527287213102941797056680220084521347678813797116722277077690793680635525551512190414031598183530553167245021912602606496799451775306014422668184100969891565016018878347194619708363633400897121782374006422853352269466685511289050973383389176220808766461947067724486908859566301954051128886821319245202157766498788356752424358876199362155206736099419836352549074779390073934185416026115024680147110731025270334420049322696611884840109346003207256901796717045240950303504231251828050228867522928955644219885221432733349079117177107957889192044941556982606238413731548305858888547942896480431749307556247731060571971055261977423998792089938366690946687317209197874992360358384764241797396273156325408678693337658823463182263895198358923922468591108375262632083324243981495475653320147918537307394144983432355701619328260104065130131147612164902186195963246937671853365199167272227841510886826335258256689524370179313705417874597765067016529378018752632674181274030391461090996174512843447848037980302689138654816272721768427215533790092962472284301025814540385635106419825129266974449842494028993764219903108125132595494727951071197619200075031908373097231171131308466495459462697476572140405037393769512137661392872133532283901904941575502514517050026235500066045396928073220313201729436281407393794274993588184273611349708927914502772474975555276526662873503724619175380594876801382149725045441314770987417160039124665737028579319909871687189545264331351528839216013115677532474631717189835881565846880354122434852061610563688893954859147543339872016630315228041660527712306409359416198132378187300425820146982421317184848842298649527390538152494314979608070048895729942538681707926636664718117901531178105681890088907256710681113504224504625893913466019432293863868384946767468705172487449287297472557750375351661694776568663463895751482769676922222724528014733705929807566478842529785847232584660959491057291516589464448256909665263242655680781617633397506152400992046811665613911611000945626146046416779031907520769848473689691366331000861900632908329734819512634371943655981240322809865574629985550684988452936767743236644312838866899079893811020853094938858422449023073515182175462649262915986227096668996172845141887944065247107544532551810546981403456265701338650429824137531056839677705574386816199450312488831230989730220365514259347046203528413082644491085076239436751677545384512394427675986403912527437991996096653726611491763219363987307427593096663327549557233305171229274866313064997669719147808866625287908350703900142119018200301461816673168519692754276922573215067448490784992472328548018010108595171657227157097663115011622144635812573784413015379573366827793749278923592765250312231879373934017787546245631698397168903846260622786028281437967584316500428894430574226025439214357595292400023507284072807719650655314032513820037212795941144522835980414486093616436411195216101566277291456556544523288366861521079250139762972175861656643528585611797328073206803101381229721808538765992118706013853991380403313059089881879159650498077087270519917476820196107371712382183259877044554784706936088249062861381890084695014804732078661235379983037055694119317081786113258099373823717087526094404170223394031423672869187245432701776005374291268592384039714430316525061858012847965536915624147967511315495696733215605445735545848839254519544464876393510732173290429196261778576990988963459710017358400280039027596379566258902612998083059011033685418521434266830664411719550788207941623166669396679619738857767859417586055010232070095108484001347719380809591415919678100253805686940063384756886471341874872260987577182765139421249710955198790807077613724477288307638642754405021833941546667424346356842667888155906816115621644435111246848689134916021119073822917338440207818006811941602165870754395953221707138252364193354294390092659051665911131120639060119450083506388863308664993547135138333070227261415203406539189829709704954949996134751246989870198103005156859249033630281150412347684493162524290692214859486592071131587001275114434767049708408922126862354806520212703219794487281742257383378285052499433551850775081160829188920071524329901917928767300737158268682734989481442367225697058876045213470845103126764049276404770523885298781370136871874897339700237464020045725209264149504803188126072561950176254197493408026582829264380743488607068488592431978634200889286028819622078500748551082423088272820565920953824542286289748641357831935384647227642959091556719121995289159071661894782731860136372557043303760665192732127376791190774033589981306191589655923893182320500130084712119812504027790666642829875862106245865113058104852830036861658607154541095284388401664370722601097620446286814330037841511998619959131989743400619946226163984211575229423158725716974816739861623667366967801906061132755727981003063759936234393254024620626777238563966983684829381440210170865668185423887652680834811325633786310078482727413178789060266398592797076800267935331151004587281482464809091832179383603625707261935357416063566056325932570097082919895409364726664803391997493648830338859687393465466261547272755257834987646156095329055272472800729272987995873710331957250817866897603930605115067333792453954285950973729937748131004652929462453522530071626453028435116196080832758495560726010659842227536568838412849907982605496336104031375670371821698672107514210525773817261557312072150424344399147125537679744570346715578129235437736186468723479024561525899989277474757261228151970879930358670106122856386408596966848696955948630209718571786519000597461916219108422024641323576525875101328754346890498039352549396264365100860559041709445585088400673116080759736446176688004139018637403266392045148487099206578460550026290288045085233070766242224754978142226104645777396515073156392460163611350691622855869829471123874450726514744712287707119370400347111291537743013621183383216841103872609004344508511469464114065886031122063493960873105997081369178854093888519356615927809249544213668465512540794973792676744433434573613889725004819332651629883749418615996297138896985049236138496811431583903465474181413979493583830189518399847660639481509142054441957665650550612790352464727271642880699460460664378449190791545858315537855332464050946562807813182560120566701015673046776142290397960708634289295924308714095644574575474074507584533838610666112076366350322429405589872254998561413788440291603673671820721666992500725352807085952478231612339408259951999830214524834312096543355894827911076356413660931220858934317854156209873226281315463835070911461436743643069119328284122825522146669412974845526610421214750817096190000433355924188705934429898491332820037521687701526210166802878651581847666595823051757240379078846084890470671553031912674639854053337783951283876515696618224938806093556864623369489745968979935992180962689706527354707292939662909321533084922236339060481676630935813664272864402229043376806993109729648955543705676858712028729773425158901422692053812602563623423301177668387026968470958472024406786280775658339603656683463909538883519172164835882101442932170806226652184467063545862871248801257338605963693197708638531780454001846709242418683049949416103664076054872363811461426818112065771626929714497710120580680318148546576901034863659120195059197200361979418669995156635225241554099376853423032132318348691280493356822433575079740645240970934767130958748095254657684824485569716049872822750446891953092700127705259025787541383806698257170460331297191959996450507028740174903634258501140213868844619535100480330975932245140805064335781570170580069376421491434620091368448596129315443033375616144572994840326460944338783237897242291337967249370131509338249881441035804314797168980790684001392387859178104872068784846110518146543760808426824904477363535892630799684976167906104196673491287616815887905297619967278630870230648029302773758468171859683376051797408666601595778147515432219623215496661998684836349982752453620492638938387415027719753204873640815432788795678290255781937267519667116369555009483872836567073873705716700673654364440404443123114250431256700663893447312064671560847760490835195519692306516908223590720895502652255839138321255573934031198409892148464634921982451354823044843278331288588495906787365176352840395814950277991885031723092175581112989479290174957889543615167776154876824928370735233704735049984288846304297578078293883778364301229996028531327769491953753155644464459435614951170774889881420491033249761972231834220016581661387585010242730344509521729278819882459194286972760375009647055195594838635880301998214806797512951508591606878464812406200833263269993056744715785143084963473010012534806589695331538539612487150822337258636849245814609161953721401303117580907768275011642521273501712451737934551814524469697502430954940400912469878275645903294707064400157489266076651462101354221167846480250079069596300679878233172351911748984691932740770764746416572383668898079545941899478647215067807177510312274434441991487352267602608749473820697283973188814254163890735926424805483428804506837360777945491256191915270288571639026170675449871220178360699857798641507058102322711792578470159034585571254060339612899037776580900715966087249741068204007348204386785511349150937281850216995077730489529540775058088086025527279696828671275942616510635164614115731303438464545407185932074692650625256650420849467472653051457817358533061974421572315763114394439225232970252809012692416353478816906751403299923991227679247335329557538567869769193567372490419301227057475678420344096754079749576103221031124112918935761480142000434556512319751256937048909432321395137678307261453759790051985333389178805273793948939428287316565292378807117752430710620392556253347137207701289072037512822138097819727960782730395059985287281846436071587476436467729387594428798391685163874470094692478446325648019065052143095291417589570606333400557184325993308628894377950366495394572593139025244561943941709328552326446510327830652280692407565901572802851809467298451436018148459983259492373204162522934786026586710123503399864496657971070522400280842890707466426200053020393468766318413284352118947260941973452474338248207001414478585666321240649065903471551688809143750712009151602929831614646208433296066089351427002761113890480723373573418434412981740559424645862317018012928600339080591638900741115399712348356856576252289401870754074331492629566795029261621745341475297021906993949524258705571110684024106180995644209640853143623795143047090852178126787035320593008435652362405769814421599815944031009568550664774808827979037498926698921022523165819280587368208027654846684567939121589498928683477459119089445146398921146466143141649030458800102000048534147233102330502544384330372742178092166708097696940982542534724771351472622862100404989152324617095491741502298149271949538008676389006733176336901216120543945524221313672677336337371118163570652879224339640729974236037128521179390549455272195944334740676454754666448424929994266020780153619079603707545677429009794492734252276306322716863538303063435215268309858409974466990779359973164367381536067310588992412939804740504544307577909283418501336908651448129236946193411980674289451968760509607860142644615546901763549525240270720217683858483992227358440290342262185117821974292550353572616273633040103393790459580400969017580308113321510647116688069993573037143729476611462434480605909536446160942513915079601094331209601210039954869051392832887854739316314980082611322357487113668190257946420964480399509789248218641606491516959389346736642460855311200687613821351642567852621770000386475317554541455189365587937537416804770894223602651246004219651230661012237704368683830220249987518929012931611131301997622060652413533609943243068502752382134422270766031262642549415956541874755175717139208554009545367699757713610216712949272250171362115304933337557037318682970115574272529999729851516299743024456687159333827758072320105610385250544747622411443226673733575505164716940095122369335645104324518897016585164521855448325085050962655835760025624105111878282548947083335461574226417300260329184147416612274834608964994539880043768358833614165997042432673434799511617755571894174081402293718706413518249691188839108158510205937819000352441047623419527672982457595744165477096346005335401733788165697120275132808864851445199416875879273470549779001418975628800519828804401711990403896936618233589478254580701184125913155586283997292007304051851904357638445478225187455713590001277928949997038312444651618675250546783702099783476444229419474191510853875946529250200016233843569846279800094048724690354766793346776897724764003645472386966818765081124173525012529404306827848986253969845956334322372582453403070524884209300902779303600125847641856746700309767621852307023555163915533838876961928508847578653767897832517560812699821476116571710140496194592059639646106618011582734052357498171676338525455768124651400589197782844620711856182970485242703409453234709779972931093651939293006463798324229085609026213855473230751451611346754587302235254116805515374051272016046898083654753134798320906950086335295181006414248572872422188802406480517465677245799819771029779798164787985544237086231793957310404658334719646344734582958020673309800377493393915433089907255352155608901736619940797624215851710885637062267967561573330139661275887793506168765707466134129307343046939124342199725937944495259931632194432978904840993711383296885921364387401131413960957018157704314514924122047216757995326776493207084320542922812935566176535594357021865740252561877150161202438306175876725960573283257056747734696214471057555077761880213806695688915078632023921683530393306248291771744926426467552105360936967866151325983948843163941568524601687873874405271910784292426008478750526390886197057823022442503054834943548257860151882719984919220683518363472048153633618298302589985617389508652237690541783263632530496246397871350986026699607858135072929801355344038474624709691544476315070882083101573459546239018748637206098182021939074736171569913162648972108270480562428538819728108123041527219996822292983855808733507567048756507481394893127128355539554608913084331477060554826355384622256846131311225428782588497819722154018725293224698826694011773686922850972264111348431004977445491712379087889497052126674561586626465409616155858225362478611821987114648052491297429495429063348591961271014443421425361848274312030002492253932835044399144873077999193585834520485126531989569469913941558610020703545378347126429467809565730989906165675746705103010486620576038913867724909648471790421897471049984455394922594725365751134321354021949902730472981515196876744225019598554766212259735590068289112957610878409917374929306746393610438616394243001849654687350506705206869169629895402570366160606054235265604629140818374612019098506288604111503950639886035764507824812277838535964339809271110024562010933167990003997395678357014196382947615057058836625135884797924534419410390450949720188661575698345566400316933333535050622273974218540286955271174694878773248319356014165654236143576894974674611227177608515498284907613339816961369482159737298764389807231754003097194769412266261503460933949756125189969667739268082613074323495051739792879207383042445320511774606533397779472518440781587333525964082839573493842055125497685930764006662227405199455739236938344763040701311326026699091749374209274144146329599174643346543469572243538076281490002027790801344081885991212465659461080448002574222076542198264399940475727672472888354333820305032057356664521290155186897321102047908072070621203514170506250393608570420077544530923841745247434446272019110857242654961831893831012125862612543412124612654262007753247826809193647100158284612063861930850915356798470540443038256487048415723389611769037352388762925172459237431678937435758287170649239401462498914331562436135658034863238208215522789048890215529469549193122470288580436924486872142532568164485906781804719722708055833703314530388332826316433609267641242920663002648340855808121436764394263542885428479435308106802577690295437685299536358354002709897839457802281031860517003099763319112107250691267265615309996622235140285258424738233452798148681561966265793415089112093377285829607465663435065155539532486506623472025715583769503760462332880050465541222495381322778853999381876355490785758287720575439981059589004210377295330017036731067633128233065633853299527020643280118271334777840457748714527626443973155640098731678306943238048545100153931075616554087476765978544639292412500900903226493521376259678880213054527576904710516417122499624935331312727404663226491139766315885597354706173085242244782725959725769751769761976094189068759377394670193649819883827720826603175494560421622233477540444367731597759770546878937296856189379837602207210757312356432883346129349406132495209457337247556335422148082283697822948828986044747654331637896647390064582613412990010362379805289181743313063610527497326355697903704474096393904061035651543475987077489465128644974475481573311549898058283775153042331107823959092983582185302483904408381688346661624672141439245810476018008732586919341705752639900580225530437403060814541514655980403820639641436855239406185846966957025815653075431378059673303950683127277138713694451732251341441634203327070338935869478788461368240499894677712483977569900709989149556877046440251113309656878201614509541970334783512335557841753035447790843827195428470377043389016360869018423861847497895108123314581425085020477187582485025824681337581358014928613200569464440641120078893081045534011424951308942808559802357568775113424067197097082137617078491343102804356339641940432134850568360979643136616982578994040765708929754159925489181929476761559121255744268864031157897687980811209675957077107072161900807115683367063724512678987731200341753173735335669819908012323991607892456625687111701638753452755719228804611899478943546096266948283497306171195851238477897064344867436363806370314277117725480822074676414284657135372999783231396021717452112851685944782451149396103844389632438221610534481099856373050634986246012966937127417106486539228691183801466365274057587523947099612615565336970499688808270942469130911186494311077113283034010840946911211852292418958527141677988461102820935077765920911570561276192007978546250642933308723626836768830950337738265047330515439914167137200491724409583961663891023149153523664655944034201096234495496580124545245448560953657662118448203644314072046765619065218102146107940860486671065669683123358515090333336683055941831460149446626996070765614235506902169956237864621184627396241871526377277249902146031503537577682902141403230018262746829876993390365608746370655060739453020731147273429264507105229264057926049194708227391853134283850241538131882446931198622419320198974627596892141689359796589518689638813065482914386574199336801311844452688225305346801894649567087326900064554799248527926544985121884066220464793913588386951458242233637105513117877133906777429831728821583086978202973075325092410309832416788609737347103791158208991257071263479028501720707176563465637818450275236448852766206948070514179514035165367753244514311134783672462454889459648591669416297031584475952558822700449482549478394394596395414514384590367510020430124547405359488828572298496871110553839870800160771207212688085534900658001702779789069714115271673680924172851108244685546871755502173556771216242082426386890955028475196022997733970690105528923968223295492398618465950213315688344350058161263569900957904981387281846655390719030230609368564772517553505246246527258017541346066898742059263953668955335304050955859722399586334930095089536753608850035342241983246390279869397394500983395099767003849690274344708713347231420066978604163891135744681818774268072289177784548039463828860589467052260909618222167726490311676407889003540604106426583621918634261569607489829592175552129119925159740183395434406007202662776521187342948074729591623166474879061120107278216908542321531103051213434149722569416475851303184748673180188790300888705309594273199219660117218169716762555712298459725815165121316786170054969412968125178185341280629445877446530254649760390478856623102674285030126119120436241852763705703465147346948122303161634104392410950907168323922164585948363399022406202857280584511861350238136734851840916215214337053616568544223244869371555556342932184372698406189477353532459735109753623931159800221844106646944495604160679065751191758089811627899422627767082546655399721680625395114710934269272538013918120844884004202544699803182316957246660888340289216753927068086088472623155672211106626584476165641206342445771569421936140442098771674620724499396326121000920242412924973466870659096527306645217110730950081958115216152312787590840181790516972619575261549434668582027115733945565381034110923521985092297182295251909235620552142251038154785736712665031061594406030069713277705269210493059322566207463649893581656775587365820610781315003769798670587243880493556321870224795585544731786919839187580415355760517262043244720757235241461260666306806746662313222847923345520027391451025253891396364839248226609820878131374615730595385764760196059437326425900289598610470317042389076306587691075070418463985038769564940076329636284653216982865259802750340365227512270332204198997233350399693181036425646287975344898658600115077694004182163558709275939221279080940510565445260327445021806587889296053305376245106423052162473013007142651786027161752785450795104024838798178066923077109552567264853552264743475737368023131687423234320899850346304424529756923526157628691720281042672586170422720448264972264375078199185607136215850972558085469459448195708812200290444685323033230542587220721082298582783155387372252638581813782686615983311568615723476457362895703997686882810574892403448656106176257528566986352602443513103961204172140064355402687912910597400097999201645704157225695799613891571122096834355508948081378703069349871407474682298233030508864125851297147977974464262421677401123015997021131092660087981944519357446708922984807876765012899102992297543657034534669516767273392949565010630078802916662465778415051576978788096241133146070133618958966248810712758019564474893297229820234679025189614779752282800528232312443436325586857775639885061371078334090407814873159084522087838370236194761561812358141002735490654300556912368149468194505804774255055238879080735635662600136716099603300514854275755308695313234415537258310982195767622716388255356287039224393707737444170713028689300446085795054508939017464221251860398727322090851606048379887182611876057370908456944827584032966051816030105569381329447888401177520478704681294706507307235777182488786659022565491104752863076091934540870210907487264562207602035015589477359513148495761062759072785575672361387845602348776742570827039978482933814468195380268299876608950259405611418732803229767062797761244211162440510342927959187072829319474360000008971445670623087285843009679522183252872415942466116462232787458932729896809950959349792291861605313869281213545419743278538774291702720007875137765026292660642609348530558950368910627817731939624262247152864106175259453083732589577291965148875766443930247447596453567825326147048680072836143296620153781272363170702648463062238426192876840850157463090558470362668929337332680847144266840938551584605364091479618635485856090099649279309832169332399994644643667154812188896897285051623819513437742843921235333250289227166768433271972191953001307026873257163441965652605756782102147544378140667120393704283311979462417404886233947682956333401481741903862926531523462596359138336268140901871586251163613222708984937338507262835481615047092024465919553571009613643451975332375459506709329149067247087852156077750433780438881573909393138559704564156921573790250763455111506836883540201165232533386531423206909199051936332476548929041438594043732499867670235266038888779174955913007419854536050725542558174935387315508041900013082690521254469354931046971525380488044950241506305202134267311063634704492272246374301526841016624827655827104696411072079994122100394346250153372405895629790071661967312674859780325574572285033254075837284473908046028995307123953913998388086928151555045730632140941503455025799563120291738438635275974661558042948839508327897331163003600186838070374993663554054091136283428106474721550357475728734378803517054799445502188380876184252525632472564981258339648419468412887947298881677804486505874276976043517253868830371671647205441794447333974954247486487871868123967537096432869253019136053663616149573321720061174166174188217003319226426773202749990780095174018298137918633487133339667108221865702887629470050508394097694418606180678088289896409018803124662685088588655255433396090958195354946166022020423913991567554916950577095370599344636031328531906935057797049893741723017498339759475469004542204734894210228177660472764192603014244655371901752237249097470997384259368792804546753026692818895030849879442187515722122258695479563331742019404210074039466139854861291861853129556051998960852013383915364586109992773840043417345672803371678415382995392582340363110552395904002932965344025576547418129137867174423356158870398372814546806708865122539616135714686144176752704952113072395069009252421769218180167248225019241612348013869672479274771578317611993698252382381562433107528654839045328690652722103162060057451457141615116894608648693512905352237434492875681586789032151886667251562651279424382875967620563834896157057570163580695057303734124472002975798935857331118036138527711293613308175069670301168797353136212852133258077336634396240336877913744590479959396874412276734719788305613747901741617144903478659977661976657972797232045168493209768992237330204478288143206568849197939437172284245748129464659837297929732665545060222862652530373537894257103233099658334780696678533785464191081927972282270883628853384557670855116091176965029235874451004213136586219049318169591890448043679364196304108716692853525283296746534497922031497866945762033392961886484631330780207233476418170157598681121393011167950080779001821355165945085532501164023573021494245455305872885953583350909498093211206634608952216786560760279283658645191077797416305891181975135205791007252120749215286872346217216460962568368434661291635272649730578244995718682704220182462305736885824165355851518887532926510953397427125343388378334875628232419341559353280602230287278490795713736687327146441986178016451951542432855496786193737895125491881010333137662231887867899279927051713693497640362027202062754570715337521745981459721781121165315515978586641018690622999420614656881770488734856089763002758759484892679390918653754954903968538118230516116340637621920349605159038364487343249458191663174363950666464168349850272507757178343334120928752351566672795480934851385125398425422144285068740520096785688273304695763462105034410596405480112136166234811743230529022277120293885239407737378197772404237828026041379123085231697264370653318136870338544843578026662032610571211212544168440003620998039835675764725896374396950174579392437185486845000065281949937490921779631567107838327400227231975902582430932468532424495523193139474652371758673647830945432351692424140363727450514304911628177488874281077439923322466199995891772958672306088108085175855227532597354903909110890015994234971458217752052063938268640767479275027777572355898813107982856068130863570233560477654515873858957361935456284148422180048827783516678089399381696507277880250181273299708377947118014277092801991722242574104090575656983758785737615809348015412297535928843554781532864654282176131418800549207538969289161108190883406351211935527184628346265137110986434903459141855482788166060394608952525738912578635865588577219716648871916097306033306868510489870812660527504659606516843877767264030558126304408204877922363900270894397930786239502514508755416521170552084920249334237465359957337924010938668478131158838013534320715390090876160128284392571132775993807968745977935538869016552560353740837079062626548574541351644131991145034159119857930102310400770519516600895988639393262853292695516684850662553057486296558378588426252178153350247564519312282322806074762091183912853029746222687002669954180178926521510629541522888191756672144737101926059504905990252389328569166291078838321841417672404508161503942590179566229613868569658297670312753007174352725390562284483521785222737622689090277088452222616268752549433467774964669125492362600281421907275093301295367774542885714467796420661230935253345963771461124447062798812986222167407842233787741494704647952010964065283562854540508896059746659166264002058660604849328906859004556337370199949376609482999195555059937760581865385344744559863107615978434664949367947936793121755955386352491956010818699425100098988032494747100068003233849525497524449692348881264710678961560851668703512179738915720796517328623842630471221706078282269324372685508662912702601436430898144013391577448426112035929050130286702662609113806759834520707957964232158368058530297479347671590303996327977425939352232261816294700685101870830674622362829094823614060024474265682083328433742889533895224118417565164167058998257053039045838441386392987496245721614033123984977441329604512904302054113492186743000466945508392673513510353066763119847803201310931011255988744188989398870750088120077049929861579348908471404245888877841643279053210804471678743454947269376008071650009839382107073566183886956166800397880213062484052838780583326262834234811056295977645680890064340096568564550719930154750222276823766742668461172679380251205743152549612708405281318885609509989303386230809952262306469186143215076310877771932076316575260802813267242124278895901836314962492098494892634633036655045863798622251435347059504405378564353712354953560659845730538576993448601244763138570538897648507746486889488539153646097086613830980628776411685905383006566821570710834048740447666672273448163022533469304365049938308541741995061278077760383439536971644490312674329117476061609727193106972980492836676663429406579762063271233688806647147209614186365228847308427918159060932931538971261822409965945967324114050935551315216325173166923255060493621163415877813766340925011105227065822118950544627152820712670792584304423193509367834680451863716125983455456481702120384198799738169860997874170170000941904655224822283584734701194968816078667865088178804657864987386853086337345846570513496068601894637803360423892167959536051132311957197021021902947103004347927092473609594120110860424645957430386713645333445066614032156903566689852497958749160717557470812736649015214091097677274424765582685625675731968185678306877423331515790230541933823552020707220269649819243437601530838173831002783668100066047913257240851177098451759841580302414429411531329816046786771016449951727538576348109738794436860987105157821077665554337605989156818561935536985204369419021694151523229465967564027061671438642173264485142454594938240767843422767931352843779241998834617474963848050642081170994276249910563373973268679423949769891189929861595805387025984614955740181032385385389622250615134053397809258661727780795570098478567295792834551438954046489927615459983357426579619223026573579492221369809082834805259882637291804012318879052730491891683823674276605077292024295946652627446838246802735992644516018238804288901502774966869159278086409675229694517586873425115064631935286056835027111075769166220519117481273164194196253230721701607378211266999013317301818114271515419735047758014776616275947420146157167945853925019188361629796982814993328471997839874046990281448345387025167214154995864217113553111416141273212220530015805571099978829529530673686419874640952524868628743473403101279671736359079815167645218781783376338370393438384031047805388054857868699313710307000019112388514625960143122384238146136022310049620544231722592843540165632821479822056298221014565242804111509982033387075827471104618221563068264131332950680766301221260398347943506093139774150783464440753465372691819568505164013824132795885665313263128904915994559105293509149567402563433818477328004316946634826506066656150037845573532701492569034350119499628953205252636817935466554344074382035593564798283888652412835977930786828289457885275737507412604918220752111139599760837357323653590356810996794254142824804558748956801547534506331483907789237026090500872956173739440553978318846717858957616012401872147580605015950301879515069222244296559808516731463737208235569385819184203221777327191813517528920034998895494796007807148106557341241501091489821550557605582500413582585169207944308026421819906063227660031998328219301931447664943325923928082047287604043035148380128261374599193142046208921839038699176530377555685608971569672595903364822485554338578141300990054745050053956698574285311401380099400036181265862071563614931437048598681740767542023064039733745717781499185116373199878382838474540929014363142127025918767310321209321380232888645998727499697245913293709851264725609251090149513489169081478728927763382686896912268320323584092540330821725189482818193914267389542337870522107059191550059543300886853772428934883489100269608122604211330489614628598064419691146942733076782129338025101323538850957925019792323922138774472034931589738928785864934805439659803694135124962758760454933908391512014412057835952043181172485119367059890304364584277955837713245010872442196080969243269255046578593059869806211540387627826672758630355292154907380741349369013515403859551335622408282911335375956858920175353173249798242465634903036932820587353019286301282159371162114920713161057546198849816122651009945537581932263565179254583928927994052030107750092082310128576003616708490671986117863192799460212375409493460340875819121133753519271514749522209005881234176868118227092108287014975900580481398801715769758064478244918455371998618254290092175062713475322508035378502605496274909120525243974450537607641411133828186909806102368622619343821538391695504806246338479741573007980329233351179932827277772584010786724651867699694090018713280247106610636004753912376342120272227997406672534646951157934165169883505823899313405322620082100817391013477537960676182681478329211746016850312223824915624198754354112497623434885557633795227567038891467067442132722063280899859050250307764061209479788991430489079634517839282739940115555935813263153136774414581293188398053660506219799001145584850157601979151336916100253320898446431088777847053423137785873436375285241957398942352749053459858194346730193820862050141298791749647914424843044346351883653629116259305085338254144770635661003629814689543491627925386767295435706254394555038028933505557285675723990159072012501704103371170283053251252206485295649662476669265737763849901445790023018306379553053391392494812786156043139788357826316978804967690204440082351374469998359081231481665017495375988057092170434595216691961951079800899160280870110763545541513361625652937597929193011911885436256804820771344754727129486318508111603292387090670466487146761080577510066843987223607540926572710514409926884284930976588324553406908144644833848132816462404247594831484763375376111135864739599026988597406698647125897698650202641985512961393948569044197929100035560146163882213335249993801861492394799406502421745869465112007877055653375838011724304912618483097001012431494080546722902558214937892931981508478665444565063083877949331184193080748700886067161434617021004076058334769343246635718643476897811525030188449716603733253547563752502438893934312033305688003755088697011603127856189490388291914341927897582000815375504083574707049318192917867912799360933088330497073691447163536114753074463776661622471833121827492044793498350854619715217917273070749318046667502447596354787302788276661282334999175846073777561552207027210104579393988970764230370235949788196272882420700166423360799521955678893873838899804436074417238530088870746848459900585192333298398384327999002994095687069771194723401494211673025275849996014215073615560580228746508985629166821148432886628143651739173726065958246696191184374972468809269618406104261595023342169845612471341134469688314643858914996315129566656253982086442568499804652030577743298502307681225196797854481083484166770235483383214532363477221788531605752050412261575633183626894641149292026565761071177050143332146721004561295783619825701747502082967973789377463139602818031481471539659774377190825991803740719717520287090810825544607611372566014006702824450088873440158888983173044142680667224419477330623618386039426914611670719482573303672160660901127479743096763530926556890232261429564312962839597075212308395129634353980317358953370125065312840483749073029572340521093430589698785721393372258476909353471063723093596080185041012158641334394247313351825030258391408635026321608982942447524249089033323020104871651013056970523257980906532969404467368864584912395285515965299109897341452324397277732860673807926242661429803492988948202071811758312521615821347565201208862325803935776377427851265215865911622027782172092128604115940556482088045612750493414842658856254218613649380194388154493062041250734111504403509935506705071205325098373722972456963166440574053547651523040172112780085124195155300677075409959073139609626859985110435252430441050762130596908314050285540019779578315970766796943104153226255013054106952057190313813246691300254376229744389514891777808311799496598585324927130018469063346166463531792723547416339011098378230855361550998281350902711605079637016820066595832010220694423218376333846976076612460630953754536895791915810013016697808244996617371016679753683588243156427857678800998293452077561496881109728827568326381921686492448542932360323630766709380745326179165358490849922781964988510631183431663553499303534042118630985217731272809219262593188939144738112081468033194134534525047696011685067229143297550911815154168596615249512953635492096806654251780314945823908111496445298857101738069368300392464736208936742012703021385163822465324865986596075955541082006310824582103019446624702757016618431056487853659525785293028524630906660487251119466559582200514483546708792149584735841650354592439036019277217168130403061873420292142639658776669320596187525733450915038581751443649834547181823036860832368080569874713403015764288576099100416947560500108190015658933937932166105991666274102779199726914817623545011188157986936200710316926004642499455645262641395178410602320367413331531480721399181485127012432844681896213060043440548319561608243585877083537859216911403695594281488733276271925743019091964855950891547848977907555459186164949556041647964390127205080612977785673979221944102284983831881190527214708295961465928666572917087898198939572079085317896767104346499550336918288742032595592489208032029157998997196877048831489361467069253213023453041455617775523228196163504362234700817232952466194445386468037154346394999067697739062476951016065302388662784892809228778461275316637044742746169294076082021611086291706876902220537774295843794561579732769793965071647592763441133738762933287139306851432606720419034923398448044800265502462636327959976956361182228627465960521167221196675692026841676210618517553886082981803675789244102130259097551803094581471725149440491312998754811623557816876290165913680942511631253608214311746201414241096091313067962686687993323565499432243869825511808173583950747862632222446873103530007997414259877401222596006319724642775427614464793821051196894214956266861945079173647441323390735170881704836680810370725818220621233880964979184093232460289795170012885483173060936850926509154366382659341351090438881278301548284926293590378299737468186406823115807362106555855021652015993438559570522252391833396903446532467161596776877929390526388788996945020751440220216185420010428483876161860365211585055599777179795706792338082441177911953946984603378679279066358668567891294522768834846213966157473871846074080119065903992677501499361735016381999077498530180988800656765724801637950074399766605972894037923077324871408523133889867302041292462604429758880859058445472683150864209068885179161837285513545181555954121729711608527573771377503172305249415978055466702194290917766702465958662293886553656350243442963883214428413049000576548124856274179849189644611608120956329472757078890883405709484064079982720853903749075258437750235676958200046411940422273766432336325165591289029419448316079580822428326617223117953342153549674224838904061423378704873517266682465274548687148122759986296475666175730771947187048631899451313133609035983948494520174541013194108378557456341394827816981847783576331003674655079309423342861737154627533044594040832377833397205941628726310856341026448985526893921141208344356340045267980234935155681265864558892778124756679091897499592117747787739083636652994474510351802997030391404928445191076478203601096681652829699338998356143419930528019404097580560292133191752228526686962981484907337155159021977920519453399472673791661272378301187312407754554402105019012190474334089796835655443522882554626203536524058424982661004011632009069686984622024388180540031623246644888908385547552364767878421609625177033908693215177915798081565774820819024301350962075930489311670864322160595949587974096439177853422992946688741436430574481426086452996896478194414141397362429545135855214407565713160820805479153073491651953545196995612166379560584871317206593995825367301207395079726019894601347772167031785049656541496774591408413353561471855041556255326328435275858023851174682348194810973127924840949469859998306787520992373122824479263871649342864851254387518524263260808248023458020071974439563244650456175479871400653628778613879484167077865903865208878478616723654819028790220803407631701505437776989885489845917028267082113400543043827450264014742819737533262088167304391774887771905638121319516147783580240067185964244760817555011987115308871571919050364582347723603619987288229692259048288272287466082790566048152190162542353799928447926120741572524392588085999342932252294418162503953187565497051167455274025631542631201133665795115334012937739786798899046794878753304846433482749241511688571354471974725179515511573345052787772645383915443955533630892517680699085742990988416032608524739700963130667997779969815197416761028963336712654596632572899355424825289500830602327675696901129206643434624145873957662731129777336243969131695531796344556466650946025513971051016496649827174240972481940977534090180407952612138356401212175622836508695014310431568275942133490183604467697667279915825743345518874142419021601274056251653201260375734020555729529238908516416751090416050213236682162317426291175311571202609444081657755970927261817446781204106712561149292825045920122103826049822567965513643907816169527882865357552241947619594914048550198516531609539269758574847039697875114124478465792526521547180858780070243538652814840559195195253797800541236520258998954572286412668139324077315927097483391660876385216073879737680654990769812678900415235366417969702442993126714546087722184678806395298491085754695192799015244298807050405084574863275078132699432325419112670890035795753331093987841255806636950538993538777256167863864946421376936221034641892866730011448144037036250527771962350420627611855174355764133487436748722838320643438178700068479433599857456968419145766903704579153454114720501636684325517459666274245410073441023777180685322854910615865992241067356568254112419268406166870040876826586925001207056229335405193133969110888775935027420375632541178817472875498457563446575740704230782135652998679127669163066372656420478898506669829178799353368351797190817938911131782523344190988372814567420711950878615970800632434031087568853683742127109579218232602160756941493188312151988588823942302418680639007587243527700634782048071828823348023059215323962575949903116841300937112256447999923823081562855791503996134278813503831421133022741166694724720773811629419062262126346502364618251688104131561001009740297270891505848618303782782034628828839431856881921204129405242479577881956886590927344491635367029144956695614382560886453695925826638227147509880072128576352527551165125618895696830489880916987722185495803065882411316657251034946652780112772110654611421910969866128175864513000496799197648705514928659165273058754780598730348284854753561935870462732837696816442141316661889114579413704255757449692152345811786299351881974249796129347536085721208061044797844075657249059444144930807444373727441272482289884594039275856348236844428052267845725191587315426490023129434781297845518355168902475483808242908661589096844704990302097054964554323350728339174939483014823898171891058799801109379540378737373277150933591516943251719333708220028862816294707708129659766521631995733048747995507568825666502503545160457426647618550426768920619571630024345449281459448380474131934400199046309160743879328503404451379963600685111199750051246968190912770314961616553925753980264253609653185796458375979908953343355312843248920831804355975198899419879031585941141771211107140536888707793183576770826269666795136450124786036566710258148961628239629704759224339634428607197221659380489704358125554896149433917565524891465233249921622511382983070472300233544037537577585679092284405276822598747196346439757308782218226714927526059011639556464417157374446430140772656392288386850807937189002897473413134664097365799898555144464739195758322974144955060665316027014779070777552888051737278518690851739081531647937689239273792398107365207376899987730660383342777612417676914573140283987718742466526739428103505149492293713146285494601685022029946718537666509133643380033223248614592195722085405609469418708031186620440778970264858193974222905082724146448447609755821609971730918381644977423397470075415299321880854200943754511687851812293827378937282399852481231542274849456756698554953267992680172091387953355388836603287744127322712016581101853424070352063313701084586201062406655594880108050771383069845267100177895337454346347993513730966304339834216583161717136235514785028327485825421495535898863977667959350804837132407342892380024460402748536635016559421154793943263154028419220334888547379334500101282164845026544864593564340242870530413947849404807310098556483059924756152799562440972369279929934525557055932326149511731507155358408661306825017975518577270020460087765070569996362214119192102669974435525285609648427163000344005354862127728036323499802803690224730618848080248330769729564342330451759411468147768847132761378042872430174197440868012971777281547983885724993152899744442804810518079697641863740069657431319575831788065832240442047975565351771767189142795268514048984375524974521379581754866576675739097924293732365643179665659541285404403635908674742170542949853074872918358942126708978561705654765716485665965926817129235630743006358966082356733453881346335604720782275909028490164792397664834518416489582699158638626705191323084562496186516813772282773534900849371563721247348164787440686455813138976177267423048853973012761136902952746934440271027611050073892133233845710607068083492874923154471235315501858861469701431610809904937143224542653267465775239171644775297255899337933373712156483134315785149077704105129500400934492631047278178513882574720300271479035505245257937623918322880976044295907504714727236106614810357428402402512590378776925916243754676600721642837947444030176818813965178130863936574354887829888061065390308768366542919712848377490041829448019444290597369657952083514771737242493475462642540364965084322903802409718304745804582765078820927577173544526429546955484256955452923761256487469870173043321345159592155773847761397862675620452947190425753578425209756604309226169874302340366081979400277618472611185504416620845749557038855887429273266607120330495713822942462818669530178290655994490597156919941913178491460821691690169284963694756447436309357521298282582171865850823764733209260795835262555909015705120129521250166824832406566202169451288327041398891860712606710895454753239398822675579936315484836255956342189094560191927834960811508116343057633478345299056817750214320232809007018766115031301154545241734705401487549530713073686854740943861697106188423510182085001656158629152702809448995687060640196645348567159047361644439188257366135933706465079678927467287228230689268784529291315753165030008289415385628300176832455314023144594053770085361616506252635366756862313339402469573093077785049092728320898427902182330659025876561927720441013472221104097863949455300732160742443168942073110274518489740803714279628385154006032869134016002030136027673000536518787248355148138931755839934893537775521533263978145336882140189994650492388910745820180282584574802155527107146462952378044446250786973757550374210101812794273891200611421545170042662957159117241251220324044231406541639567967016742731320359957157898425388393080352675116325105378528978244464259570371594264118344194425441296050479082771153647471053112617195792120603900354914520153267938156713369174532001332888906259349540401835542764540504112449982506483498541741506208290873363657165151901943311303902495287925039499870839155136018972098472876945053884638676143558878089989195384022697937711770514712361912829904374913997790172641844590427729696978490485518847453017690032677466954022360179378484840148661127349188381424865023452985579299940092702919406223359438236244381705236398258513758376098388645366243137598347411912083872162615486677783057054617108962669528303213686433981772715283551802263690210210662979134036020383909107820265288506297063479790329806385288532622473930540938348149876996909486860543386311012947552254889361267335316286251047281393920740489759634122737933935873178004606365679456610833963234265258315034444777321395422730993957991303515493215394575818453194159886928615560114926263787956449478565861329669080507494634646869522166547668166203348483435594078457454585343302093850524987002229424470555654264337124382684486050983342927832388678069393305859066557447642006655101861865119800398059406945758441242443640030916742013912041307819713368322932394708896417995961718142716021222336560987961962487646575410404416460586058820218632416458420471678189401447185391279099350866036915107461832972321843333964911209647714473804741597357696301458232367270491951753220498509176849304775134645437212666051063869065706458638631153084640772941154463328781505500745835206930014802659554300872318281394868909055037102547490646312933793675884697022403617981568525599405581494850938438147667672413242435063816243150612918111225745904237336224924954756193653202151810342285104848821342891461455518155028730505614840912316834571368125029857539869535750678392692668370748451055383818077031623704550981387779740570507844060088587588745621549037452591398641643388747973642001275869325274409701931380965620530374853832518416241571904257525606563115426283127606233662172825034473903573661807113446842863355305554061120217999520797116655122052817736787695350561110307166864798632927433757153777533616811547740812529680108667449986514192042095028791424852839998538583368416638225810479741308197938016849515787938151068018026399211345133826917681441845826961439024043422025765679882600483266955230220978675687897381724747289735925244610420985368257454171013566829925327828630177047192162252419720550290605124950915866520634659957375001200533479910382806962998847992312829449297729593840273375986619387054962245817540142235300163116097218249132025682765553976403267592980607195542189975506574172828958385053656778135510228514323086346615376796536616695248514318858753702369557368730071178901363318942441334264966661932568872447972209407275138628035054357954768213649529185890597023080976126243492416868006041128825695794259049607481333789919720849611099932781149650826155468056718246976488651657603745655999462188998819821455354541971164607981379256599851173572208326520982206685838547879209843054890547325963604116817721274715816084580615724429627312655846486521680474437226880855450344343121642212192253051433164237599386251710529902354870731264068434326267930949941319720901886231939244568888770435030243525256259456017261925665671313116433600833186970498594839109107799013163343862242751996714730517296015279129980734953919483676040636228871471440590609946169864928710669659536205145948198552972672866738843044798724857718813694670297280637815956226536632960624913739832783990216177955065919396353444581218193070380359501457984436754927589683840772111617913041050619981496287539066546190935231852528551161813772829109340050928665319036327267060041797200673542671723312910971460229001975974446822781505886851786256936106630547931395142171950717552245046441027092940125819099033317954114278483606212784182245675083019799449545526960229809004819078332280748062587540749774096678911028364084146704380452886217478604802825287991140792888800678505559559583697638545941475571157322007831860885455897856048724962456937265243294160778827876801619301367104180868821317390449869830561009443247049226798052133788667571424925269066103973382063564419355119286343469256180120794674765881099129480855632856982064416339176712173465545697248530404016052721673834809137104391242320459592746400813152201660063787931434579337827507727235544095142083653258873096899961642899730535691238643817919167540953761497831337190127226571314761842728969993449786746770089603839802281598302566564027330643439937019014740200896430423842330092249016105140642722135606565676450043619324205292657619693331320732322732354689840700122143958821510133192373036209062319050419315962306988098078943836541989361192209830694285769905252664255431892813629941999131091901583244607511118178493878959555377493534192911927293100374632559033108711906221106050651514668451877938634093902097228835883672238241597724976702528421990050552093545959966263483658553927226627676620016785703711122147441218925699208895739184747650679678521350199918410094240765500338030979859702471481309293124637751396084545967434646549729820287530745631904230800290253940005835872217460068752857223367756682579504697834417684966625401961339302393045408647230318009245365852234179538434208882462709126105968867786964575626405181701494337837194018485185660128994988339576726987616354690526918526987751007305821119142334259769046579964249249327622924710236187182016675366922842012402476298779116978963984961641164889646501135402880537436618348323189986074351119941090798301826860267706652649068085085762699772601455049613529179809893019573959966568408231549506466757730035676999785835891667065816921653583581110801798492903078226720680188084838184410999328132339742886987028982915149724535599781710505856728536707960928324777242637764546150033373733411759894722475476872328109931086483036917841599625369559266725467886242425870729895330415586202999830033368189410180933808108433578087862997683658699937373380224713398589056196802474174781237680427202257719215385928818957790061986334893169161238119918640421240810681747387899116955383739363546524711140900979536042079413854899613575260843056961254309632174012480596263630938567152047024974679806355681798308791145866231751089727286779674117275001080603025101439822178491077921807601781824095720263609999480770944029606268272724944755287430242994890282097476818784997796516895367767340131607774324539893897538842204730192720414417712259311252156837817894863527673132047857717784438075419150762343914816104950711312460999516948638624624965546956292213740582472055043104005086400450879165336002462395670635212946616360973492652085408854102516996604491780931680241094999599207522093704813647429985691984648206693575360534038096239909513799319671604855267948041859974458573143198892926063120180946929930827631760289907897089752435265109530860946690748469572090685203329877999715615343756555668523820277180821077012856463804166245397928058175883365263148089662590348409688891907117098792394628680524144246039352476783622033274456162622249829350035558834077860132225647214000963436023573303293573935658585124255322882447400982294085618205002890694933366952563818353158163900815718408870584598963632057515495490841582170801187422923023622386454099525851732909884053643856386227402365426343871342187443844818430771938941068073955867031464352509106898763324743696802424423817387668653775246740458105060301703029194511643681860515614156247004704600477057804694407556019031018762570668216585783649772488172435407837096877615897174398512808011430393623193557289829468323550472775559598926114191171358178464531957425778245881840303948685153111169011688642421457918724228265018682657817246508322500214596940933527213868352415846693693171257510575136937945994689922330281813140143696269884444207031906534902626437409827892861685599787120362143368782705737729776098337252887682630496471425207962391310809624367081024596695876244624761465140407976712041521020823129776085370915449929071952994438375049935718861742188515617457222972295580318620721731292988386758583726380647320967943609239607850627471882535327725923594788590018992829234416750759211618239084735073969866975558472503071318469688293269655008719720319440931415087667328552937808088993509211103066161543996934452705112724928715969965872692436696046044491511024058257222682625529957463629532501740562259745406617734846628834020702127839112446409992851810012693400542926347703949370974314287480430062872235410337667497782334009818959577184626734085854036069257500564396750112450890421178007856238708513190470697179573836179595605982396760984661699690723745541119679698175921375248424873166543635614864614314376124445473210532889802633839912176154946249657428593458456048490371070253399468718042674825875773695642908106799689303358466533862026571185967918767179436491832045325522490187042734526500247941845919089249372568739252197198662050542424781677650861073084429316168397856689800552991181279453137628454601448216844535058424825491667409926851863222157422782439619786468331544623412855798957388404457564904132356009514949637345873737053838539056809291455359066904270346181787878679096019975723272280197632957377938141581528257073920125130828783943727346468689094971986709500453085001807091582654930602152243595734008573770446839717995210474491962194152295304113920786091063899618924947357757979160256135052878060765008196751547703106821974686116411846523624107636338200322876634275816060496149413832856325045720102435444348378078492598947201980572825211706141532804748556724960589219408817040673243001303141466183544095912599425321591314471895990122635189933737780330165699070390634703864070188085668522723605635757645772098870334112622734949325464036038819066781650671092342440316459742232837343683604379959876308866266476448732812519397456453468499994955574757137859514446760115318375616916325957679663755731110386330552741289490555632810665846593139395403712188403210700106205002783792163843908157340801932068573296121381666209260487804093181335244971322130669253658984145915253725506734166369209127447390946749908862613582098781415019235860130971160154137279621775095657083324098292483791227069848342344911473461684999028834531021483811696152137834719323023976893934014940103402842656520733568576524427333187791365141331373262819294210160775576458881342705703005215238071373689249016178837202912783007956501368931076261238282905175593850096861756124554058818796762260663362616464323853370094677233880969724674141306770023955710215170447082059256081798904622511691976940393422751206699603312634388746914899864731005018659459092285497167752289028973311717168272417022786337670214914170935877849331396655592007056587506478973935666067752829878162094357704203927573618595227082449942466174180918368574813939565136760453168546989782926017967549521484090273002186108200289770213418278882361776282213032695982868149547825831030256486081632865420844928923149284162573382225679289501718846373190615485577555713618242311379111423602163287404612701967428470418635537783361658667124268378261663460913219049983079936511213212508048169181790543857926428069104497765766483115279031006669520684746347121782137110245507499396095900926134041087147056801051527299630134174108893861051785871127237315533709469107006232570718064915061686398390698460909317221406761025702195079354301933365008386505325264691721290689848963250664319512791290229140494648056390015922146851536414476944675897970746352692920594004460323421411172737605325652748913769218453298186091633673179498493507420819582482968359313106382696931793582676900010841206077088553421561287539554941041483104573311151699875662345834299639217953565530909358213234611345358366945399320921224212162691065685515530059451421399478989609794555780054633450570096887956656830091107343952269412946714239763153349922956860789008027255128274081126395786471178192337999613913240275362803295310627091225167395514571026512364520158044294441179194901479581422661212052613437847559359142475740200995015163081434813267022512852130569438328563140395637278360708264175799614751825919976992444628754932608038509244433829815504759009220363723650027588907720673229382908437184322677054832712026616108642045039918213129110903622371465679237676656751221295216058646532615620603780993214329796605427845900513531480030562474084213367744995016272418119769492704282961145904649516046478292432263142657806119769789111146704704833698492730655632488469809910499105007928946427646773328253250786599429089701899423986956514797963167308272130585232056419258577002980581196297997438310648445136593588016956758810450889362398321222661472273184755042084604691464537072455625095472987266854306911366984379621756410628668417116979883697142812158655016674781342018308336773013037459364318186389767456546343819731704523833624950253356548223104068281280897424155443282306015395507557970393916259879170928721836092439724769954095571423510516311715410853665639575858858063080704918334412616838868019083777923234183014514869261565631766519044578127704580308598533874260576885075170901425964245357574937724486859865738006181643839323935413005102074925221513080021475082497878665471127897026069110293611712148675983016431397119389612741173370053214048959763999628409730333994297911726178854508938248438965544131754805385420483858848486826300750050180946163719610533506180790633032398850008941929179886433939232818531066895404836943704401575111181627747310624727367310344552615458615696073008577451379062428832878577254718555705156903472680341306523105620464460656521241375299287112057047695531939634947189679259947762188323032683748448055487064362116337795355132448543196982194761736896980719186069743861963085694607714089838490120172052432872376593875789853427072815981922045012939962686735967591867848322668665332086926802065915462959915813860856929077862460428803793469506496581144537513288878184825544338953078683417924144188579810741518018678518908731495153961598375062865290680788495676418410486754140442972212160094364295935030763037056324423098222026493965795477523437615030761011956528623877583888713015960585430483047607293567850197956954187786675538158642767003530624251621926544814425729335162368524483713806983029086349066463026922216700912729246887733021952372789715531124089892006453367166733645408037325069653675848115617413944047867901903653333245480880883821487969452980940091000335701655071188327023969664335449338017828111552763912764825485617550361082520762523494013175320488033735999212807252189952988816178750411967633762296438901497640422519570439867796614389430280933795090489114313059050060931391102818637452493823768880622611495873305790271699882669593257051949117676057938013032431596589008913925215770062261742022653596819703644273768297385407593859952100600242288050100906036623486566790326488192259832556737590605914731505376407435308447570290782679772604674162043518395715793686252440506272655506302071961574055728238916861130858937709681845563821453113941886244903510093646058585908017673331193090509802646992340874804525994056002610625009684773292290607273729933329175949129657283740340965369460495453862859657278311929702670725687647321878675306354462398966515641763506970795046331374715961750772090803905149653829963747823189446778610515507066872414690322329477531152213674891567638293831104501478395819085373407690188417485305321609725186334300279319607222813220708913342423853675459962174841342030119097739236988987721010406736318063538389887824343109107940801791614656475384893665638275197637805222006462962616392475590330948659126351437007119606231018566925937935035086110571944834513865393501668007366674533180990038636914417848923009832594129038803353351113976553955004408422287191625278297507577815471960104299320698452474201201936967419561919780297019687294733691944561193644023887117732864124136257271577453041255702579145343921685740815774100623801704657254864683996492550199505038812853395088522084581524101082170415015342243127313743229486956060108069999686883052216001386674477465793674200134497776592080364887560802150618461657330433823296921550608450064853523158292813442863967413918727590259735667819219854130587433942349952640851921457659098668981512950778287432495881324416758208853660801468488889896328614545173616107636271727201199481604359374057991166440968582712445695558281432424610201120644218939210946490131475442576636987354917199630556590241837772356056610146265981040185591124933913334179493802484646393446029897657804684462968812621226926350026910988343611301859769655335963748856766175315776432666180999520960632600766594565476590152588237674496312386775509071080257978915179036786371309397053486082152515950756053575743299806649003202304067731909585443604673908866144476157036168876374734624973324310617843250065202021016511683409239591305691599078880761320646183442679432185157704248181701339750848958466588824286155461592495293069154252979203012293747622968540916512600518768979416301365473803297415129964701327768704317610629586430434335929127657047781799076948635058070781518546448783086564503046027280644902459771739122297150141045559812316068925730635250405691696616665932690269336919562771192104375137972837034073272162642806904357815912431209922377895781799733806086058336372612580520498521689798612677649073080120267015577831063588007518488986659291661039910059529037627785246347146306627010405988801299002488172775398821119279758182316396906483996168391940769973443797161540788313069514324850772898528165893732038418904853930786666686202480889235897893635860580056691044877101712045175603572965282853533915875793757519000195419740234502587628912046178451855331292378317800484436069002591330115459174282864491622744107805351754923981192219732433676293187869825405936135210143297020896403865607216401703247201284473886016741362763111602079772759843870753436856254050814780429892258902056722937107515492506973925926735861998486006779715273956134077058449273522340101119484170939998950336930255106529468438717062604990169145509664094580262461716634756326841466948654016848780701869677880744856291966782819277607801021207459917964742573974340793286960283773882395108595554872519695613655985669777701588612822376217679398668244675892740011168480064769247221619314234226082326615010456969218680519727955797528663553385312939107130923785161985954975567687658811565158011460816319555127749604525064340744112452429373522304142008716676199945379697868730916737739271190128771683805645672435571588020892397327735863103312968774908103329935025945935806466033335301477050686287049725626609220079276843826316085736657832956480123371070549994013296001212458300111952611549967612121921354883117411595133764061247594635360321029648782756747019691243553781005282341902970407978740884878769433193816335265044183718337694551818155576824934744111471363466995851568317614505379080568028615021169183118854760669765838510734528438163974958967733946008255164689938181053606740270399464284951595026602104110681241023346007476610189480344315931351403496007669142088622035877581027583624807437964972300315906135070624251911530022876158985244689826047885356348036179504823909943097446046222620654157979476424030324301430580608064668618021025774491034445283021553434182760997524098726135014623450279192009280567694715867896003287230920432167099870311746357727212709235993126515175165539964458638092141885215474968948243447472993071619693848611423295010983221111987087458393307795298645263342041164482435450854830484157045195909479400637578616795846506947582123119692581689055178778129353994123287010588598282194403400269427306908750509913736868141220760005417418285261683455765370746364400442242128793592984336807356281651099380827035623988331606637600404653146537982258696239481891653535451764564564116676467320473070262620462699475307653998220708189301179183352487928723913928095884135061975202148597052314455994543979575725960926103860040888623974896848519264374246253398563056319291099652568814904576762977124290289878272762465651296398989958588733293560959338098394860430504446626202081449748886796679335611278486743390856531810334305097787472602709680424404221416970762818386641601289572726123266677038452175745127011952983582596108194948019271862001112467824186329021879931507663127039170596659953230601182702201650100323017422193471926627010987345340613134028693688351138825785682550851002626005614178354421570997120336345249093581597225767405664106551495119815504591409994922264011389069989763369892764216598699331774082395393390439379512548007161975611809156082314540181650308288730486174507243745696527910627329568985815217982086749661645692369387475159876942502001445894836628851957533126901209265296439503477631289340033627476629829723019336920054030366514598291276585191777853734465766087090797691835131125954143633372278833959101066221724457748151078567328801752525422417531568377687587877766160791086121991686064872360733180531239302536361006725278570324436917483595229621476406373038585996133393420504803787552934760948660509796869802928189004557370676473735789531073406631711915840401737891842196019549101894090986342235353423928960794140763232820569372689100125119422293574752275123502133376117030718248256085704165332254691732341231746595580020375617436717825623354998423370192730008414600353443773103153393401061548704771815896417191071284753843889960149979755875406021352708283751937860452878810213794919698919577259548534859530549575725952205573160390592604110175644265761732577708780408509338897209497423956670561895939558483836806920251419582017417565865107995453966716194373027302936719315369192778482710484614779952283639477297253088674706389742231705779062271422511479733074700778577116162314880797964309210360816294818033880160700940895587777198175226810206339417816778414843876101035305976501468115004504653418233581515905367346279557789021279061496176624101955474234138713089397892071902510507030968680620295488394696496121700216922437251754883788516352952249215192945115720491447329453826127762341980675291614032910485128010804404012455222795131753092360699403285518258352879147877382457635159228482275170220766421156081457499765434019891874189129471191439727066072198906522502321634734520080455321511959614830015072585790802144175735461513377620104094220550401177720810153262186385637921439762960106927700722172587299622015445582761548211854553933324164376354684229747545535783082173903404428613395927345327917640345715260990028163271866290019930920729997061646824551790900891345246404035169122041132602689737332388108021134359542721141849547270238235462156351871556683143988024755757821462257629075455291038981988986931833690295957178429331052700831679896205334145280956113717844739166788562675050252769156039640532029890575786451955693584279280794652878031073966353486100359270840800962692909772155998901785324925197057751238023959650255501354462803573126753138387333028340037662575067585213462391624402784822957665671214790126232120607536374456945514647225614586681260919974205145575535808235894266947166996702622826841140458354012480923369899903189556171194116360115303893149336232675767244740328115312783526805979554382045650211077783763318682116722003856161205004990308483190643240445648307115509197314613377501159077047380683641175754526367108692332670475516100265200841367483957799466983070907805311978266008429933129052537453954006744364092524146367319811848577972651729287314603969611424548612928920711828106526571696002031834044358149205972918805435030962946527806697862522950034797959722793015828803983738935771540895395816611219961583846063928531325768995673906714091750157697954075603767061851048915260089230724262773508847357824797670937783560874239925430931188578594207472650424289456480761705972472274017063865360652582597658707014126169463594039693948005375579101277592647903483841162978365613451038965553642772940536634529964890405057517472239710195861852180248576082688846456401733787290753632965026305413756394296239371616020324509092642294488944918634814690967896605155794713814858428956626641219681179329013335051987650801023535861709046994561337888550993941088959940621108006802387920096790439897644621219039990725993471777573592029909300110023734413898916630876847156120684461001886891924441059632574927079004291354429636764952096677225241219201820614521462609404496574996221059738068364789273637157050991175465420167329354374387088392860789103852356566696058946416992069692890587014782252072861218900950590443865084284592878787097427052891255981057907300664730179104196441344429200531763516730094288588548460894437915422346778158537109289171906402186265611718089549912157249430389366165077282128285028363649636541719230761132127565101846695853703105220521513362750359850676561009451074690259955191774674154645139472646207171084888343255935333910081783095295465995147369649906983960603687403734473265256226025659712914796388677315339776853349594333134415687994889431009403041985727647347914210452504920611470920900891855229843883787754649567689385775898213450258602782624098566880423725837090670206078865608619786482350905243536073496453256333877721131286649802167064839067222073270091064996246264877423548383854374291542639417080778108921466485864704408869825279360188303203963964117485644304186747314765803893012984613762236135902300975613072960969513168041270584364755999957371787134003580975712720516842304953832526764183873814247594723746240335903681329223337378411218784556818510887218941530163143099225648063631715195650745840336294671461715641374499186879860982506066505891069222560664920189059463983715646753522272950442149992901000384597078510256365742412694128496784934296176733477966699250869672246024817641627301631395494526958183554250011866376747463873157099185632083234261523367505774967587556758782147679617088052387591037589154278677756740495771949036178079455706837663323701738084591200990549070331436514026815996894564569225511539176680191796481021396625839639876255724118481224339864215260519181890185078861120765711738351530100045006502226554250673807984800231392676827560592771012998291287970098457497990109209177589591878435437962850508718668699896610605647987622351295854145133511873321874133640335920829956956739091099654037651425300631522591639465851254773990828785635998506117670889421150967505393410937185806006469982908862028696281178276809898135384954299631902365455653864646109355781347798263696817950841372696668774987041860533436533625387837403306719969106692628634345938175054024976232305180538470642691123028718320333837690740510792737249613034805248604798803447050487097101008377680149257909103013359699508107260520587370492872504803893950526138446583000671630656990833436755387006050947484489422718460213982159118905663082080886798825365635023916651459476538521672757129463644749136431110722769308839660376508943588109673459613107693656495415104652277924984835628583974655728695074867638345139678556977055135711916433201998398996359064803810424646143476830125103982723879086407715426096262018811388934841706735504846011147324757847114379261622708401201007121889761617756577705902780943858290936844506015344116759419932717007867018755021791687153093969277106807949480326878570449289489640904398968205184037957797428424303586774181294515975934754364666482369044959816807157660956974705687311689983119453433668696341347087566511616805940974960416301486390986595438314935140458877801799405131801502527484550515876918503182774607029529578354427245754587526253746983035958519049282194705937676382671350757603778689070770238544057757766925835371461317450023350709815420387535501782358929039457546233738524554704972969672612951772509213123754720581142411265762017270636439009173524804787709728930965715547981153269313830317714853040344714372205042610864611362039607623969800835626617748119970427965769711255604593215304365290027694107937963108782590487090432198506555900400779833585845866337165584138469116929054261958484109618196630290705409488364405112959168360892544561187278826252928268491291784661522720830728613297042162235020129032892537217479588119755302290450132459212440617595844904941070680592853363967832385632367845256138401800043940532490881301100417164281346375985110340418485115407281800736466670510759895381782608534221863574263920958025498494886412529452861570725259961979719557394140632476473035749410344351580082717014727635447532396176561780776333450348380294994306961831262616271731668466393272660315034472223304963353342257521276200051035072496105644170554046680137417185888075419191660639969023752032833824855556123348625745558920139483110747320715974149650641172211986174610719682193630079834971445228129034435720109785251557718262620518367957779256628402949544732695355216127087590419348654962246247930752433591899096308074881327968972181083181382034971095325125491976875786408796097535788180423595753421015698391018753102650182778247935341168958567903095817138965808359549191483440295560484829847589731651447872455050830558236244455398548032817800080105076428208508099031836182357132328136459328295841652311934366115964200314106404653624064175418457275905356417388622481944998352725837434001823194634142330621656031812722480452153420351166642361722326191030944365429860984104265082190137039419860486747293264304502083471154076972879382821560587061263847777596222788193716171412975329719624373954280395013146566328438284181635574026544381008506718383929580362875743155857837927321976277811436260106286135245758545228655480171788709144054929758723314741556694718925408559871435504307243626799441772587206103464854575813084732080935146152893504323281154991437525144076784085996824988039022623069916175845108554756394789168678932542769408877972513586294026795282089413570658782510502462054131659298358444566049953267053717571285432278091529783213984843358870348154952857914757366690972516041455362842030735101948635566613228923650212726153400964880399833107878217162515010554031587817900573555753853293580879203723489047308773884655490889403268981230912898764181340591811692426564210519040707782826542419524293901369501088324497075251448043154845078352671474538395591408200077943745217825338050247632674380657934967812014991309963438249645219856778169885111477695973567207611237752849122831643065606611397204720696503775092838615488516717336683847875364591275865627368238765590399402302009506867423209384060421165730424327686868893682166252375059238612191592241356926602543536513239146309554979166153980642716647571616495744843237708376023947887046277875674381076316658353885149222686918588417116591305053410873211676893928030290466175831206925836349168173716265172164607994921193332253238658851993317160073959575487984548346246755938053213024070238186983037021956188992215297003964966430492400586895490475366680463813910965418326198460874046890351197186409159255003151963806800348769789800325507726499795232721120219208796134906690659189544321845797268720376672417859873359303505828232295060157272354873585699434424731568900547910067060907490591409226404650062671864786116354975105529336093435933391153471513276250454783928065879095485115491315323325817713349383104194642883299561298913898540508821596753184500744511779117372087419611336687702249983607896896632233825910405928896420751967791503557479524882677717524185168522832349829639991633588831912775645173101742465178625767041697925378948125938393323860902909512866661138354633783009296926180817316117109477503335146230945799433492061503272616033009150027893963677487516715083652586202956447150776251549315329052347801202084929840065969875284812425223442152401053349839720095365729345301504215553369166842841828094975760579960519701508377963185999538315565298311413046854368174725513095336513498165507488605635488155692693299457558526003883502457053750527001477443714904855151831269910911119656292192524307225934020207445664553925518979057266884739455750972230719267373194096698413641066001182433674720268341971035811751180598676617452347994001455297278883181633378012082143774014289785462550914990565190111214059160572462544270533158461592060725937055409576792047771895778940858094437348010631833820928021892709693705361120996527019111150371185926482079572599049325847141046953778914826728758818105807185887873331177462647828042842309464074257066226561679932073894251385354602948767055012544158767794596495127637963047611204289331432870052084888179637605999080270285528440594251607337272817416148008051799910641439643017316647166887911084683150569639672402658958269391733692917519012904141062427906850943962758930402117325657125509270454841265974827886877135804979253926499933298776182226671577078157131857504276275836541121709979543535208261391972850849446708206029361916335461484387248975775168303740328241365843539576138230284504428700893901700769701947405962215440488215868913303806669092290281247123492710171916448074062271786275633735699730921933211427814537510332174635010465796819629942432741219033750730868186526704197780460287105446043426895484201284803378108199695795327888736062721944442929550815310694710217621762994566159179447223938143450977347713013180822032021880233498128887911495414135014866872788898845480539730227722059262763832598346202561701323897405327676074495135670573792391786999375531454523699474828188000981819011160518416265749176846565990343629051749275960460461711523112991688317793838235387009615320667249012941111721887381318693924948118379619363153616831396216704909192871943342434852434803247405767759136244966984933109283834843156415452759296499011952743489669759027594666071081926033243986152181044741456192991803889531572684018343681712988122356508881654681768509009128209430354241884855481243431358225173595916488608069408952047639807280191733474386934931954464712415514753694515409340728708575908770431292188323592229873579745932236371075381390478682299714072517995417462857098035447806861488577254681856805886126263410973925735779369633312310958251964257719471065082995265971749714152669547818109157173819786485845146539520563768020816946207313711044081922323957777463458581909339473757241484034266333122866113953924148161808998121768307894401441446627230335462469111659221003018322513109021821204515682832489418983218404356267949687567250639187663095118161152597842502041294870073691015556294079233195775724821165251437298492190258836519737581144468976384265282906984393806813061560089463493931351106919910472417264319301022758008982053254899841469752229459519633522047983130062685521843641436757439473913054432948986976792334721888894834436383365986539622219537975703219345252713881199453286229317801531504288057166738016935998144560690286761542633195444448531277579435630159492303572533852139490554822071094186368098699188111240065162740814808347971995695599642369393255014836256682842779868080207077107907485725050574918797351416543469574806730559169406082825023684800861083778020210887731019935106790271545874187072545163272061258510790078370046912297976940138001665506970899289966846629501038763841660195761641975082117062944296372759944521315606009330266720439917052626237235405281955652685321186204235578399503926713582175229015040159576622771939773577053785352763048176407566602952431152511507036147926496471802430713930173459116471839894954247957566343023660064709414002380049983867708991991521877809487264381650298459834706441194571549368622093085715416135437907423101015429048991379061279402622394497449100610282743842169298195785023470854925384448804637522466433900671003787248303358030760834115771857398617058790481283974507538695351249350244301984956854015534557592537963275890997596896948613614769920429360175430868868040720626666595418349910172499762403188994230257316699375331805456786148448522365476055883023655252519132815098182634446409694236107246313375791550631494590583323349406682442304656367849586882418985241267286467275833138919562521587933398469469923787931843447560501088180879472148327137984213607782625000155812545234082485805216141945627128182661291082387205202764678908720792204432539893690123788518340637070260750248999828528085877027292570880891492103339982536684657079197529741990308433909076314616224972571781032572919621537332978448965710163549699076074180323550615252685552431704962863364474366823561252295369530476287357899118482736778667025431858141919063083930338345880237934353513574984684589584717817017613704147168830672369794697617205832849901387885075084137926352007990376039123771950103965088989263917651026270790018431957997522171872337128860670877202471579037945253432880680998798852381704410617759344341626471517369962789050415097651906910088492340402327514508591780708338633201236468621344074331290552395747149689213542627419152770565609895018396238134667328940355280266935811799706517353333848367218595653762156176995991007331488109438306992304708045031897181292534583470916725022339907865226822398789491360149406464070421237169628137378511492247534038529622589292198739420500790524836695698024000754933884089715842350816220350514366759808332845308315480748617155579680417421695537645848960907057160438766142017680638834319073075653392143244158625771966946092900423718189365059339843731938134478346601398561553198353165554498112360110967324436665256769564876229855098348396337449186367853967828207937184382024374356275644344292012711413290859858407938071511863505753833563110716858032466629099407897841658552066316245509319946016707150464061200163417194920886846475411848742486002941163473218638550294165694728145816532766472029775160748182444497731764107130476663939973772870143689224998202049152643630273725467982275801693068326042685746695693162838869308027518479170571561607804635218288964852722856210690821664250143189467602903550829888775270380358924001051929524192276217410190810129390622415215040749992397285178247920528942301937561989459140312028431365881175650491989196655065488460561437889237041570860951881322881632944567430435741195886131203212108523972524062548057079384266248043312848879766247062529690889603113029862980816845669217435214122667075050020328797128865665998261623479522581790562823763150181887659087189223432998774156584832373365294330737169555950553557111392224143118967410661891181100451369485877097186793942361741766334635826331352004166631027928518816266232391366603449208810647980233312923212114907516810638704112714799240225817522741607236352370650925253228628647061637220091304902276745811362508467208316157685791199377646769509025303386133040084203731526281430068834731622768903720382199110187401953545363615813526315527423153042028952491104715823557309092402022664520575984862183994680276962057147528254668240795425475973904183846367405692572313087015923503562158732912289041092169946447493734429528655426276769564148172008899570269046958096241956075161778447650368987690913270862289759282635132770505241411897749386152014114757938141457767342195599440902809771037796693598086593941412500479362244094474993131106196411305513878120655971629462037983042526691164436068309033193831800387988381779998038235007865684679111691572940785654957339680735816325822384812344201427035924246666743390716272651945681566095495549913445698106671990870224238604985363198999159059666989871562903460030177592914352417447390253481067619291861207069181318956190259799317108208915975319492303400874779126894555605524573845389811474331275323255656140968613467507536567838905530783162288590462611135149363486498516079082727381801625133794729989491118511145628631815657515570630847086449827448615165218389559695485025010149419226110943138532378560025354684702225561741571956923167047813778660514928863136609493655195180219538607602122906191103457097958372807597647373742788103786601384247644005095931514356875378331553855049497217221092856067369466475000375410752448533257309595770398744353222239058008872373111413059375875838665981419713805822327824437595351077621129075694415370478955078811923393155335515704659404193451224782501562790485299762571177278235149178735787570770922780296143152381717146294496093451849089221648618943798969277065652147590498242916223158101753555120141365300311636417956745187819644893234368764630282629781096247246672311029730678370709782271057550656939174708694097362941416732636026307177268686491212206831689437125406693652829040397883417584273720896300279604098217916889594156386079685878085376116532305168751484903706483950378096238016249501736757876104811823028506675389572618268277500613647627083446874897327366260833911019132499999537453458567740382814483583854459322177603670419567901315753216387775729691294468622004771199110827723956834469871380081622308283918255668760321360114682893919538447097355742463503706556698807492377478752402798557171181784499936198658480060775564738237357172948593455705396350353577503001442204760261899058023002868036474557574940401433043265622422777493188583581200023140636348352514060113461834622982496261514137537504609599399102398380691499636086030234051291758879000409369279855179093545609808833825637724934447007133941078789233233083617691451700219163050879623448428627933360409836187057589923940110138931845543660539704554073022902448096671231714582220434951159819632944974397546988296331230412313676224073057683273293555219128799503133808171087170357857119150632720133735216705797320857919957858315940905583628750276752413639959558509546967478105659472428884059100415598762391501663866239851902132784272423818139895416198727831907730021181560661948665552332794819197517015781129229707593597948783617192773069703890199223976904707879036582436561468282562497994956330329725596838842672247870408167584241698969544951833724169799732816868235670794287797344574290748638359119445941317921139999245737107972002780143699026883389039639977376143782909345532627574066645217114964297994500720512557811580959425013079604457267078427909561850476034219618969892579733898384698760682213516576918469051276572612009526133629606209384377867871046887442062683676766332182041350044011681584461877676959003432737796244373049906430434376215333337450654253435522700665587350007438292230902006465958571086774020117474223069634763904174634230231864017041007007574346742460902153105136130480633866147089970513340177040091291308168460391482395379325162405115499913144651201414315346330169921638430522955013862441003879694229391818476906893797280606728044762906975900696649277512395733969769565109391834680444957839895355615834000506467198029808202478958949290280721849555882689902372861063228362536789267184741830244207296886453410337764907018369268281177837994980102959062034538451457593152563565595989969489510749660146868923073928352755628962520499627440285884712909488992578874979479938092826146032286635717559148640180833012540265279874854864553202703705536662772321879680146955886230279288986518399359603835542048610711810523867121779458683801745725541274368483556861294236500691346244774259421126106198559910073277325273063877470256277411615939475509283468306166297973762205090591863024933293136064960269993248674042394023279211182837257792984128082196645389133691559342929645264190419030717982990031703192054680677438622972055038338671778252852031752853336746410700094531373909310105584993878287456367586373135519547935205763706477633677157258079641156910892733370710231982541996090244437079080793346258025584871060243250931598422935704364955875309825311938125534080802133082419831190701819144577244076265863822491244769072991563266135989662680659166194817454129185636776815195500287194223618279854322092807036295972998659922307975029151168646058779626287085310328479436829383093896735797426435194999105120703287676937325434805019020835213481634289889271844080128167313046892464593943302809237579976133893901677177892084646326507212604711522849389754378642890271005837461100261851076870085046255889908221182947600690095608729697917161324184592335026735025660736279252834812186868765314406879298479865740586958730190409091652034745153110386814522160823091165986087757151248342496450892562547346192787492454394212131479718118606645090333220273075573428076038689193680713310353688841966962874063215738534791973190617994983864321973467704001988694411627722664709408450746980806704997322205108304673812907913247154932446974896126516402891611823657193750006670762189486355573129476008757410370160967430417308637351233231066570502127326975884338964081452505914047796607280573039735661474941132460190837927185185389845819101585569908246970105644090582018802321983773223758451016441026243716142391831053378982537086768219690110929547990584858651809174222575452677691399101703131153489759236779125750278609366262777452036388549917628825590684462426937432422620075381434904820223540151264107297377708514009646159734673273266105675255315486928089171212634730656550438024806756217935909127057584968992733950570283543345206449336788722010006342124117075878838660008686061615649466838092148226180506033736122741866509227057421195507808051942484387006034825025409621377062188676005937597256406458176963314456282490953506666562515264900498243206770191721258946762417251146356164878102946899180839099004707520135547103665294061303111965700594776714321491940784450278247650971466424975724028722562896273755426639580692332501812701016120935226467396684614696404836672191408826427164982479912775213071066622270366637149260943193567037360805234439423781488762582394665401440126506273866332639414540087426066933528426057906057957483873609734850767586249376513694797934455311838743340072954795076601444668863028719299136425337204463004138464741292048010771424480383354144247112871595216149674725798609605599652276655232573357607524577516598555767968653357340088671380673145769936240340740454695334232829247698020891684811161633239068197600700657815320256673379211486850428487781161700586689270702012554195845597586190070999618845520389105935343824311911388268172524579034288891054264413719031373021825193147333416440831104971173192204682832878548310667808412095007510808054549988171986731263172723659216636977851731970006660680940199775425689177592240062783689624926058513562825386310631391816450900281439164314745434188604918058039193743131611086138376847295513627416162047284500107676708092481825342892174278192979416161628158027688710442376468616382442267575689703596152613631669780144566335013791711162066984566041135090598655595108722497913785836260276260724551411972080156400858990374586082343266417287910016411026319302367532393487951062535238379937496681315371139791069347335896962555978903888601179051092743369155194805344370660613241303771972502710151456761834413892268762758077232208743236670673343827580585857016366572417922565768521274773539489082968740388292517693597163563320701657717763552599345620625735136262605146386851305882631735364289779911942228748551651458056548372916168788219806006284434504480197657393153201460301648305260447435878401011387254080316270757323069537406406566992800722510596795628721939631087864204068785803560075898525681360563795938525131344278745036636595176210180446163302225613577283127662713218645244764366825336677243167304573084140993987229446748556030750400828983490042020034266101114337214744576540005321605203985579125439752524995445027843812840440672957690762950870340566861143116971829781629267031934240747791512438653450728658508721983847311034413338736298861184651564057949881423943833824536734975661087077470516320228615733547497132379873719157400096620930353596149590776939186702580179792801441206743807475269231393196255207158693182110915235411078070706550764955622023223083999290907107687584010838070745729928221727284297371340142043585240649169694835306308888358810694120984811398941212170102792178412636629292540819168379821481373700790305905936738918933110116031005375523976119777131793692094299426472893709847104411784253560963869540890006415908902471238311407327888233119579754883751803474629528523320600952412248053601194416649723301831638845010702778848245744902407520512162286447635841269981240516978333516613614222611426970599822339945836038915057530679334036871782007609258744121222396052907035341395268111254074912065740448211025986579273385359328667515559002659267025801147036883084217473654023369733359597063836607200486821212375023029021969800921870531873418208477498644308064067160435297828986621883402388484426766665649555219826562975324917078405544493103599356318635050280202853734961651193565433177224022734642248244799246209489234548982595563057978074166884639379682028009447627757180456259161825818660351158684069848025442508757053994519282053147279798202428939211215162218572415162569815198630506869573965117320404380885143857256382044773168740350754224539244584577930505724178663581997980978024215171020418636856614873129647943966755366031744775916025202673828772019837790595679562123303121064593867068700630928000654718391194678141335019861067556030637824780227511140838566625504772605667785410628681468720444207068150597412907932619392603361406337641996223939469459075140017176718457646045030088146448790535382815309762850356521726679031841511145240926542151902481881828956050248849991430739858119219500541736914548468190939867245373227791282391449729109065243930176604316224630907913334564793936284864985330247145293613558043035570749273754098314049550919722509147701488406040703879863612182980552727202111788436862369825270369338797536378336866569449389392945719792666533148627157573817647412012328639147761828187856208079818384067472932689242427901525678392568363343037433957580879539881294142475274312937721758869058934053434171728585690521697328093797248810591119626179364872110274374492955741472486345167627490996805035602970643338452112937227126730513856300482183559516606562129642181949217987313140489128709440635250667274538048903212779961349331516884006889610273976894323377007491158291791349169661610058145284298154455058543101008976458238695130921012418272461296782780723446372370213732266860696050310309790743319581203750556916680815834012253922341424078923878307559241964501537734018039289229023252808790175053493773956251060685581499853350623972165374725056375503247271071521571140525076853239868396813631031514705186019779926022275826064509121269970548291974016483832723559553797322327493745530394961281549859512948473110140309546230144873447530511598657910620436157091040189469007861948079488553290718261034130753651748344182156839390925992393959954755797053301818853367907930010427507441569403515292964329656346980597864787336777564779752133883446670541672782072555269989211004045218337264548783297781025283859165698281640439467916100095075531147382549438630456800850622868223570937736008741882180301453592830355571536965765117021089313829547537485981117668017071621484879962630270852926546857103043557257802291618921115265374453863069467363513868245954448923285966072570591957546306867265606134076095228771158383883200082178101388859670241725068553774369511046135940680411649346387125422497066741459656434306881591668201067194223446720616498246578600812256355537348610944547091034101388521589973687192150683425335556935627781842418899187448664202325091198473152711820438843896417584048427812257916578810553030843877306138093010570497892206539892091900660583678720682616694936716639020888856896750585285864493708135755717133798970845980307958684841106285671550742106333759928063451356654038181582174344410886834274564771376256895366460488556258207600137777508440150821844129290951127001984628589321958220874404027999946381919712450315377465678858557924841107531242406539100410279926430139724385537891875419008716904088944454518060392904620235550904248655781263603229091174388039805199449727255300821223189958812168167341408968592821185465267847257865207386835272334239872127281523083009710223711638149551182065656800964067694459808610676851881336131845889112541491395046129317252160065259404673917016577838675967388086382550044578801988916120589420939046701914292947140720690493025050647712639307293722864559478399101066200946214963745603553140716366967930522429953793867513430000462386859600280887814449712875451171481429595064264689740005486559898152213435499227862574534062720584431475549777852551530231239586560122867017242862515263827456142741902234784683356131497510873380395465816856697711098298562115715780205192825340931298047858491726992150538486502028244139555213407846706409019699299407546274786106962280772710680698732529114558451388334950561987172149133674998481472503024142103648736777507840875209175105723686853698593402428003627791332516304637042560575971057084999834919873551006986570336096709081613292223749206809370685050561841342118550275756641503671523269252827475813412506201981716671616637098852622466398082967247670966501208162805363167086864663809463987713416988479720455761274541033931903569290314296210264653690919923902134915042768044877624709188179585926566336268135631704214258716264545596973269514547797579770816738548506844131410470744551631585132099321270336339334090755554690143148288880936250767449621555478314071743667787783427028951375851159461223515516236710571414766955969935629982354520479194125323084018623515104038064114146225011254235001622767225683061998509395166665831483862850606816925720946735404256426860291887588721523889533368573008146422820462685878143946569821537289060216057057477621309030601040641200507109544874459907137604519744824282154402724093479984114491016189740047850204677628778884946656606241986710089592659407978270997305495822530144490167017856578158798587018506375940353803752825602241633171636959425484382058005508967414424559797128003289979792880567649399667872818089490948375482667522229995312066220890858854175372425505829573315794004430781196971608183078300258285350534069614383311316167301694778097442316499187559100230768569988184850562369054692706349236606060520375587878398934217207518345495495073931154524123939207365241803438620874818709383957137366024859564569533318515291263188636856179125317884043235942104940473111702566114788159466704743015087392395804478472791850052049811375485724218606967397932554438593480832400836964427462552430149297479975603383056065913807937507873262787915388777135486782393730171536750451022312678350842109196899884632644824698156065774188789343760476809361096323839830250885404542660533240480909007129961383499393207106941469745313119808668076211218566744723127074133757167621345553279410930571793761587042382905118800766710668054623081032575379509658230508889799892086792429548628646504170482014958153022093991919025934927821437549516482217134516560573800835291617508594355854393888983679838237063888902555685248388037491876860881522012900159538534415059050958572939034764763298131446323505623764568385345215058708922646555591492314977239558243363441217038255121778796918344137429876412991134150887224371854705594644508670361187500706314716102693677501253226837092918511808774143844060105345780232279890641550501548948288442591265174470264699831001541584986371683143623798341931547381463842567490246332597319347145346087976691614334721752511675864880142386403607420185396320055467009478795788903309760214030605752064286060280736606981044097894866003450459933569962040066495796904100784382800711761879111956995879158449125984819600507631703875440069962676299461596736210350366774111837977419856771937452291299479404193159818491793784790444009381918812554337117512616159439950056485409974971106084862293302122729239499835563049926144922345369086754946421102996147292889344370602648419569068502899158128943749886838548931648975502954019238043408086003994161475513505006903472553319722236473554637669597828858034160303241554030107080733560638292956186716437652200524717192789030290433130543266903379472366722363344282825829821754849920657618301630628404924613963192211996251553804382758874210558691875224454939887856146672805008736244717491552564682789086311692331039051582297193367045762543357628899567755009827551584338667737899668774896670821834737591346735548792586038717882755370576092217836792175563417751428754743694246514969875486702908317315183876140681961354700142254812013118876411216500944182044279886508777282071556352481005381681610804325837429572490314000991909711546931177169836918140906413678153297044206773991859678911344832542466978689030674748208918803187585321641970198581587610127220198212638545307823983458500782017221476126970523144752226664912552030462543544395254432965075898622892185579507526427002723530350675182846921220638764053100285809091525008661589930448884798518791593952946205471676494265371017545628387104335123868367736555005659917368657836919406214000917115951109968823584673286762089920694906865487815767285943048367396757809635909241853739274132919549122584444073244741415055044549395411790460035056028186007329012768030787711439095319960892999976769380697676243953594358563462749849503928411199188984398765129454886554032033288586674962573386437062818765702504905655069149142373400391275435644026780327960397564143593574868138408054748905944360430936899305959616008602534156654650864095577219013684332170558804092271932862481137052439651756715523657980941255661690393679008527141156728475480227293940643063687235084768505173518344447360769332513790007207537487587039678840902321708910465090853123304168674339956765719869922389082253217826077871849017061607019338700512634695211075727628830795050766617760338366971800492878444165878638888309954768046946834204352387492104793926121088873836088639211904043587647184477543696750071351054299330690882831593020225058516272908265520027267018178015039851664646320689800228744446948407663663769939629592451983052718870953753482490519681372684744136286392289105990412305929656049605871245226579471776929897112544193201671840242686490283635412553449832302545803299104706298431409488040212033387840874456511492510809832302793444114559083906632290601324067053472711413985842203040465545291271998817656488581746381449538278483260545258271965399452580897320999013790277329649851644319312934944394333656174143817409720107148533703240511096277709430591036897509193431365835669461803858650384120912030683824678696695633980290388897121469353026759517409185834029683559206388237036902477331933494843310826889485648812872656201778876721940062018770222673403386603079962127941535873042185677640287115231620829841957895751763568029801492316361794101956332970609142969971450671877763596214516344578320312755537571643579021751543535514528504204851551419131079396627545340746401339055662307972060082176858558471349355202615629686740384973832417589020018602807025167211660255177793843872583903689511373200029105002779153014628450865409326110278814423982785799122515753338036007822682097893211202649853703772150310476447550018510181469856636258005453699449709606729223080208649459838940075884564612058331992550241141733521231947478714481013641783087417285669050314062454594742768490122891196925608697221817885969613732737080274765600658268472281104863208103121445374391716072575848333868882637722532925251229451073987141689741640117560050443196131651295416810508712469039961806601445895306819252747665138238382795171559302744770924674399916477626598974100758497288421477145425650291785659674770001996220473142741622774181269090331008043857428127808179248451891819576690716089567547047295366540051040250488974422025317302993691767347111794661439936112796456553592205848272873325407054514894521845567482870088937869865631382727775240535149192499165670388307357543785800829246639705354463926352090130540168745330742958252808344641550308380718761116297487237778371985117642484947261530253112863332453937929274375687976606704365538239683768629477516674016053234023166740315213199584143332245572186715259119556597704975374683766720823266793467417236459141997694771473584516643372051826430132580762528072555425239957020504515603158440798414693037274893872225271530989536850066630228412684518276416731543768302814927396103864844047375736172852429954316594340550837261184159440385421164297515795310389072898607374218951821474356114062018581806334074341108849457610364908677102116689459875315145906093858258361745178700439528157274111867491704692080714736035693067796447150585825274283897287053540467704678277153878026449855405334695029601849123630434734423815467767420866862782768269603357256059747477000414609901297372028983883015838598461051956740528001796315326202126238074706659149128979680957599157800880571369422469345674232644829650945228129811744405407921178563731413534237257605415077754613040007775756703981141429323488869041628033964009754296374411252515380270283925860959262172041215644732848651204891569768740497754097536761376340552777326557902567994359145040919633466522269532361632965740598828106542870935077649268793582478643117584263502590246775547362998327783735417215755221104269164027675723250967737076943427244133117055280786483930158505601601909052498422148711106918042169676671284095994577432068817344095002999667462110218482423139992648644785391041929146303748777737625564452388369213152452750836425096054809733549577111655834168593529448453140237563504176868103164442526112970710344149296706475146150027256617881100357595535298620280063174487225411817770833498591143390088622265514589042711834333534592442896756179550951244401845707546413043371269670353932111277561847525903156674917735922775854752317551988017060796771503394875879694394207337420312599168388548399250983101461911269057438944272424579931496763329259380517128583499366386709061694728376998641149310494288470027931133782151367083427875922476335447829616415682300426950806818287756416210080381112036038551975944159129561669861363539712608038435791498188339653845305995705434270330631600855437687937766227372730938990860005569775125553721750367886838557170177351776386643980327896581572176768979320748836506554458363880041982857258585502568511448159943810708277096893209554647915931345971562522673243680324572296431693523430626055120116836686516611729221257519570615488202437503571526129648605030660358110634146328190881818376660437192009656367005892665580462402834157398843948977239848086984336424020824535762360080819192009334443822703715475760677055017557270335113276651749997829881854168651048737724693403607837995118530680015092693776930496791568514105558322922349587625556250846964466554178603823968258135868943462107633669937786519162039863485023674810438146386407452048865150620987759230714655742877240088897926266632378092600430788817584999037854286507142397936098821009561382995294134420943868725999591315557415088322787434467453637505190426354275680104912899380243302360400978668902598700167372125669130660573521851535749651900834631305667233744246434294015202723079068685162353744577547887112572305195050855246372970005867347742207455876214317916417843455521726832764072856381506135017224862328381676121991318729400345179628978154405595912662193110608329645714590278438364421774860157401825365850759447925194475843604193714359033011805590622829510477105134256875230745436237183843449097594627442523844258006231388918405700712352253502141111576233415422935858926353849724643954744921034838260597848744204551728568438714440252640868415935441757666659452608379150764551476885956520809736386418788449711413498223518812445399360478898935486646764473819516769256847760502380990449573289789186250330156776636393937925171767660747611413925167400653981567966685297907680424307541770138741125907527194461223528315450176048987189729961184234474694565980994817822295750534868850220956241475440363962596111507217666333200475578373555236915872939495157378518280001130272375276744164617330483686402674527558318213807674264123876487810854449252228028871928514071373687682430004351448053494966598941394377373399173305586676126441512872188264583542724659852418109956565667032578307671251458589508842839011462887391140439837420415058553905753192564228722507264949938020028599761698661290780669439679708609750242094437641673697750257932546161956878229311400574785332729488158411540419861928786340656868862201684720844253490872572258519300532574933200797516856748546584808153214362872008323944523664189418853168624145169307294351788736809302803475403234033485297719706164480833524049455212081892839371693601643978463754814693662209541065930863262277066406504703423406713792701035493369975379673708894527776148407515790663614431407514915746332195531454314861109511859027771044137885955661395156464701582383963719170511099624310124906248682692960100172086643250267411230910014823784820746378833009660457507148875008626823872908731016148138311960505370912970666518860684189774970362935448365431743702925076801021452486235770981989076223486204438399978601333207839315201973162792437783927746959489804525629303948692411474352632404645344353696634355687673580897403086796894121682730960896554697908857439417286394600300473575937328383966881178385402306231804700964847314726891748605842410590952017294601414556244860484267797634342078582596850848204106425827011006737271337281794554927532569688916945450519044698710495403122651489239902422525515724512900952903899332891366788164408681637224847139709965249037375222548701106722915477004476549082289908912935772315083342157463164043590030620798441984149770482226614421223340849264632176632152458116142051666646674161110201839556428887472506808624216132953026328334503327157061573057589078797884938082153458498107660056526959244636453946446194175083103387162388838056056433475595119069233231569766252073317305116647413067127539748954463867681141719098587795286200382012188559790746518968117726511977550068363743205120589709236086498323727318644638250160156957572033182636158913966573282872966449970843007179112640663741460391827383493100917223532510404598086226114623508226521526369245137203691891030712316740987845329898853668618689853397150867289253079484939414998067594639551925162729100896092894494341272708112958988738218755838618212433411606355440278835226802698181967801485381501910087864491927344332961204256961193529184140322036947973738590409512429885737773284138051653161360151362549504176164767074703017427388792858641576730385043211177604836285437685570806625237285383766006075613739718405402237386524650651827395795801877673550653894531986716094084603995167705263557270784279085614746845613925631356350454052893988078629035014639642122211725338770708257166518526928524423045286992045924885120541897284423189243117461981185484458571116446120454285629033539007167631121366733852143146962212358611623924530213858313470897488037321367601835080416281460453190926584030900643608847447583565356368650116529685862742890772110776176927856979020664498199696936561209540685863865542100625350501763093784087592000581977893774557465639165052896429359739510387741525636601040307231208227881580152498622773992242919057555902067071409847877219988479828823631508053695001684283922750284947153523673649284571345953294929133089738321571529357519201227266144817260429949115718421893850629238481229965852676138872550004767432092104997007764146812310773393663007794382507270941844941653423839792558390862457311120591264589766054954215122901637058431499184043116906273026247853974498101139273992886693227100349078944386280726970493918358498981718488182150214533659806794851025427147338392496232362440416808901414054095631598029151941267042114987161266260069447749828358037022799527661799799877642705653731277177839156347956870097348433794947998419164854463490000520572237989947674025870878105381043329670287931237003836065936985257398975754635481963808099406575522859170201921443072724966428210534295700210359293601681800618393793708001035150048443643654237180209557118112715152135320614617271306043667983008861707989174792422604365187782266893594542942044591183883653929027919391921248632589823789302245495471682732618690452962241551106441020973133478569539664773488693594148364402118538538874622332489837454017856827119810122773354041852724213595846657096196548930972983540212080056974178040527211976194141770971272877469693354604957092806181724301655438921328530486107199346343004859684652976297416469521030851332571116765396030660681032023771986822830106876114451931417949453093736019589148821302273332484794427075804191310522702422040135629708005880320958566890572010652965084977983462843347082822930041025384068069682070101505585120142461389307298772581146672246202116367204662483209295160239005861097959281950062883792166081820931550400831316102358386700225147236474975836194028179181121969081765483353474095299462286863200223502990407341242460508051683172257097145920920100633886833451832234310583470634971232880945622325450459876108008847161006048668099871223798542742050729986134730976025556268171419432039412372806550086270759834896206604109852598738994196906195658407103958453017153577832335018198176944309312710664732647101383015427898597623748303708998966371998740364955140417809758300655588603685277088106392877017257281177537358051750446070827542368971248245184745812691569581010552838360605370035312608969042772933331315325925528106888614856570604413683000530353671173963859962237377583428296353990391417981601941427730202497207397230967673833803316939822176100101433365433846960315258119825310302229858388003055927862468066640056262943238852065397747030524258560447147985876855989240715964731674379777179663276100506394181655822362249159795934414409948354212800021896548524962490827030190140552909628249865911936577632471382764420585854482200620472537799105309050752402317727072576663279352969764606174866605100620531804993991565087974474541826116092946103543142072827624240359043076641623195931582366994066668715222518329492510069872223728377679678211306503390719828327950995309542215299103716677974301280451954217936112417697678448328362480409695854751313060016534356491566942553479947263981713109795546056756676907317303782984763734449354598742206922843622324931990079282683082676608748815848934190786953114353921066045307611137993938401891667767329163576063444041165692590956952103956497103085169664924056466724562796537587451426552183345393242873286162326010549446821933329060826256895106435861833548004213405040236868963474991081969423935098192455371723331598040181080322418820973247715422630945745071301064382190730370956223887302026459292486980536862030426069589302090229881547879500273009467353833617042536050552060450961913528059637279430031348283065077399269287527424754917657358396864787685702495378652795608053128843373034290310312420188378213702524847868317022898186726717706292678153419207327109537286106712127885621277124407048671804971778788665989005639682989653837313263554183211423057990867260709628723764293981152218487662752256703770970183673325342830576438973665300426297933069704815278269204676974804720906510513505463631760588576353352716831941162492104083644041070173545049555592547138259538848931961821894964022371179173840459419525330951532761929168327389307405832448338663031013416731953244696600612814501981067368541071419321905970745401802612490185932287566428058328088826506455826011947821586274511419683957043054065568195117149615665567571862994807524995846292270543114476848258280176657495290552492776181367069551330553003345654263918654448147543379680824772538937241602131832210514346012095490549308325237395543107211354103066065637518197992861471843353062181156355012626336272932108303327646494785252001264242462192184521095321295118102565118611251238359224480395890739889298259789449442758309981284942865824181705318868860290337727797602649281525871124945270691107344649711970644946743480736954602600415778573754294596501832592477264668668315319123271517484980272014877459529470174767421632367793500696628740551771206466271925622603434399694355182861114976365768517848389925353937779432959883053551135040910307308332978972936795413441730562952203997156353260317191608774325535082673455628659950944903965368995354852433673029996364374656546266403687177361206144700107465776295722884943349322572366186528361076105270216190557877446720183875114500968692955112629078171165112663748885594338738695250003047123967567597469864935926913306946533144748564561968558553217035711561115681110300485021292764157156500605155640865918622544196458422314489550592701035398254982713852320318775689869013018759326033570353477060030140205550440631642825733839363503155996481959806541037140641713893460848024318622530670351216057819585970773881014749347565684726318821851927759670161199532985266035456039396998951926491443082554793241651672355684345179211574933303166014482638520592089184184637810512780726471393342080735645964888109101099234670835753950239387850887474932313108622131558413002097434497052911526107454939292983631853815281127778178179175236899268962160350244887671552157840627412743196143664971891594525319884518328701402828802825103363527491409683143778171676603070409519347236116987461239573248276830571755282451729288949812993230661608287013686604888343958502332725969002103842342468960755491544682859243098308462773537668091335861017697672587142844636916219612079787248911794728126886671932445398084299221874950135834286770242534538706274403298569949508015650678534152947891882567954265668618589131301070410631837852533154559438184421111828196644984004660091095681630186078013729049137550591583818565055533228049748415411407587437550917526178686919518929500062527052666195104491406732202517001573927262075781092528894798214521924457281241183950744380401236327740604892623491858175274045180962760986254529418591356111925169793065336954056890734948156997652290971184077572899083693578590836965681924143038678194037899630586533766971696625926817429292243188056914633676847723710093200904653972669988058793663944146750143613386969460579676469437593258327837560324193546110995823757665861010105527648020239252096185322889670263406632685342668841698758923084933179131972509591800849810637449951857247284219145675611185624374611160324938346137513047289504314146945208761624875520857029150140311981430719413290268002206194214024298335544542135348055421950565959159031602010021281508266231291541339394557012795702815072750235209870685154301529847902243651440698150530821450890720656474435437753907403951869340054490827662013762168236102961203454777593821442205730176820831066669949934204123496691377253358423977864978780684126951973913391470483601732306506968918879694788830067121297279329950462717222694329877763346937386113145518607068315713733143021688610261191305537294149641541457177277099957037224600011020252323674749417589219489776847772462931294805008807316931275718802798341413425598548674987294028338675156743902205893837896967322090795577500556643912725010305748096036522645263160516101685228463336032272746381919126029020829176012272360560746240356899515155130859978212392040275297904781818856828382140084717638371621625383664176796786888108928938879843461686887112129805421479120989301622924927476084031396303011775744373373580798666652126960124257275049634320330740860721894334167718670729329027313826771254721189135977270926895128374172053501893559318817191559964288859060455466594195188427487597526145627166535364175497574763459015154280300878682332710348675457039647094565068779327085743493175242504179436258431060338085615563576341741389341628108998621992182058344435807585959658521546061908634224717065357665050325088927984021803168140576418115439386332584087827865152786253741223042096293623925341651648660133501874403816188029393157148082243466203377052556203646018382772309797417419579153005686987683106650437207456880225612630135192874675847690323277094767075957336164103621519127869338349181265892135537173751521200445572233053662668016653384172121024364433763320980209327349103845976071199653050071864145848774456534914823215383749393457115023373485898737279773058375006396991711933044892979042920154503562010631690679028330739304323292365835777919324597749888080405210540033643380799742987139209021276425477303408512447078620232728940293340467356165155853022732522252336584831325355488369801109423364323079712534213586837999610769825699603668050383508814754140255215711967977916717437310296620962821061984550855686181404061264004392945369321193197638843983718805452592217071725572108068466478177212504636258313595635613550257612277339342615736964444342873160164741875299933464088470420103525604919459260604754732422059581981230387379367738026977338816332283956497914564743860577306111392601329567187802297470267107306652194421233388727236923561403682174003815684194580305504566952049109813591453853862653602050695339829566040713746126275115044503942578847067905793973567424534937643474015496014592643469398166588258415487319936893351725685083266333672496079328583479005781749301465614499466072119704882464125718805316346049323990836902994613521350403129405276497868448185911143210813366745676908280442083495359937763783025440661621560186287407990793924869210932889156083384774380044131965088476199015945440519066892533125135831077040299878924903451619909360843336254451383506984258539607538024210292989855278454741293611757173510752758716348671950217143124156869985911371501832777445897152941692098457839096493290651611039549068362810094267798608710525617120302582893074842511691980989227086011981899297861270937848064698706805353380537441170568062628110802419580683496189608395570089528064476322434865703273554415768314766345718266664169236275878320818819661630097968523363884345127591596816013399223584523241037658169710575537416449308174166201298582616878756146466238557184776915392420221750902491777070867102034373152608469309001881771785521067775474586693679741434928801459794835915761636615788451785737399580118510380676999200412162668412821217982618092450886878275161721121883645818823489861134371574071788132018296982830977904488783281643106224145893672453215781368984036308159782619023476980719455998571495341730532511147952270873505279280841512974500916983972794111978840899408925890452209686566053349120324275909139658332958333820703063568931557357749939694580878828524176116129586247935974886057970498968561369339326549012324515345934137583847974592364955752833006767733284907275961733361000308707007612043715766590079388092744182946492469795236726524158137850322483014222871731934212262987553966151559969963594850528239878898817305381568957938867113180424197356796195475259513867425840597055941195108332491549016650631071051267525095800993293540732789797402797098872652392556416813629771493547032485889483015143076269500889034335851308595501135514614654435881300340888755083758630083143695394458702325983817713815857960164145782372600653633607955980173577827377010192483543498470962834001222209456802661322247140236627937273955496908922025765832107015194013467530671522978443469520255672202843017356149690696682288931687674735799835232663048494257779996375021870548328330247345731847238623641927857760269337698386204458155533434379563896894718151463488565539604565356759298026590970834206995455968254760028980323699260214061610200256704338003712222609630799399586774169277366756356638964021887280076976093108186656602873900563673881418953672722382187382452165477295129493446606663767726176647058885514929119888041541718063129260512757501525936063866369478507220991549864700420441598553217514603493423209812007648438600414955836940231948120003900520603459421885865147706411104460158392604749294311222818995616925468500675026253541001460884340162960286825624368929921556415674494958339688991454925672725839521339179207049822139609498846304443346304790819546282842037647716940956729593471069326616304816718232925692672736106619286193560780142972815183113933002694821587680692451087054895046611029212007216492580883913690177511737784362718493703415666123034513820603465887367660850811774861929656757552443333901441687207283357209849844567518072498309224919045213062885611749927498682854371370221068906646514994472385271999357204969057859025446558219870977593818095841623598682260512133578251538311567180407422215216454443722930669492826734716995894045483211931452151362048679422406734341076607356919607525073207687956754251922782252252738374190526115760827156014642469050030460782519592104502838079953125647603701414749981107978393560602916192863896028863301197285877016233459636138209441592152911281861294635681284760373469300810325697449138365995675039422904171309969000892835212096223591263655625879663621675962916495834747546241439626273140075525334803148447143836753108703670197266994120899617276211193540066438709950632761845745752178838414318182183127110818073487548912277370979946880921999983597884522307011359442002784449795056748982644090490884977694501993293693438474966259077029967702564603798557812642350980108992385801596844473359222400504326273757510096148981518527067509139081401500868436206153387229781766080984538483369272848239246924629205858500430410076197003135660569549871341147491289032157708165479646180445517634239599842371383804816277662245381232333086550484428379231969211782403668205564144010991243471262542441973062114119828278967221383493676964722353827558900373334620631138909383513363083937704988275830693811721027088703652773807687642018552930141506646690111856477557145674791698442652472437558318364428620348850097471709740726384738339307673830749673985293446217066453323537749468976063322616883327121082841510657470116871159157225587583391012153021646267312079111289771872658743254476689093563963597699702715848995665462897897249286607113885561886331353331435234682286006354907706709721025893321559334966688608364041703097314885325737825371845273011885349579793581373357332048620862128567879932500876255625808874649960269288249501013064924822453098391406336042376424136816966859784839297078794327037008809736230137752196395100942250393001255872157106402822447363697210986778645460908442136991960072565408129214347356194432911754612870971161353503350844463414419000467144945406048524892354028825131976650628995009503363777083396758306170203322895961040823954739690059217223958950238618890666541735635206129774207932389759043858492062145263797929788679374536348591864957705567782988369235110665045528950056477280065623703800973815066388636245161906348099454816986590291919246241960296357170082833126480147951465016053709520171893710390325589312163489484197944145614489570090936423568830185910189930680374826313918350388124538379375164673131448727304679553095664693246333356554594119519136445503194065412546117991413161897369609870710956407776116788777901789944411907908227367117257927312325174295358017630192436563604287943385116109817402420139924944234013816284961588701244461254827395907009511561023680935275263320423486611897396871316607537152797409974345717607044098674047220979108595357737067744011216824014150026669057106794071012618973340982776919481532435913264965723925938783569821869114097885406999478388720419221876052001518001797179912349613706489323033166940611899455299543272832465771123212999016760863727170744121168825725239814499557833901791604600289879495438437400762387790852245968080844784000675928523861987318937111083573278554171292961964888086784742942477184003934554706873833700816183078549480725474589298529880055542343866399958021684130563346796721526340244376660106837475562464417891103685143774967017183044120294579498315703545332210862714476755224906860954873699716141296365028342220117786285325397838283324167832752627742492633952701797406985680004183246696141856575009083034239506471175119626369064128664559494547680024836948072434306625449149201950621489455848133078863373467776645108874641307500198378452387110692129243507545102165036465506189348052990744625561183117808881987010303701500309068119916869684564891132804418422957215737240554784468547630276255001477890565463919297442597751139709996443345856600938515311297999626482678574996727707237072253504589953425102112161764690122693475931243928032933145169511933487061693628915047584110860778072133462884984633403857472308794564706752862272176436054929592846251320452136117403349017807411245539320699405711724211631103700243334359946129209341444052986233153480867560396455769680280142420570803322658197721889928459820369104811856337025732902422479244007363622059604878809137216913087691918785355193982446184000461110137281661247304491073625067622172861848209598681623557174619618732228666000931168976353005252488752127069214154344954545381288297704824726378826684477816250313612497187927936350859424991374166283685977934930233171886776644941103844443839375766094284385192466139626022429320768476711090907499982221329976020107193189484994675417909438721706798899060107863244944123928985154943240912474483765622099250052330778019342891452658040093172856057988546419182846036570946534018051220995829873388024272486872934083289176013721758339232275695121245772188770205920186731710502227978529722561467076447828994902345598521464688306386746762545791010867532250459872407474914867460408977872109412630854287227406819936009741012646526684880121937130123869030545193708463350675960626725364631486085633875869460487087762805183092447591337835687222079813457799277116687597587138171652351856153574083311315399721966532351308793572362742387668409102996925043029096368420560146461239301861167662507289846364469652896481847052045871644359633289711076224171498271184134708364248511529716035724866690720482160919584071527450851537625827831610490378848992412445585249569689014858508411586870465388105861788789941450665597409684946270445643993450594019145768934498320766486793930691090438731207190184264869039035060094826428384231733097755658634495646739757105975499932359393629770154868236471596696488715091555205853590180501894907361008952446847736713915245996876401628699133273631139434546385651910736887946649930158911791608323775970603151110554288442820215993180208581990620833948207008441344927142060291271254329035639425183747890569545455403760100091947533721782661720265184985140301627302623796881206138347530893702341843377136819321081243691267659271243596077869581070329001350733398731952344765035247304908830066395838479695224653147547175156295663342381091445311495106664192734933723714464455084008973417907959719741436540675747922199963225555116404279042465782488444516622642321192313376837522528074122496093340113860807556184896294006572517870627330420192350462043595107476542794994441071301323269909924647614964071292009979258035666748315664707581639668051071359771009037962137191776592823301889581545432468743462637339889297432087622966170399993577606151975322865166601920023378441367333648283064343209470027522636642084265303314170004422388456360352160250492534017803895084099279661431415352150734271228957458438272863116740528900877702877836424443953029662305965165057481197946782865670773416072496255535718744549895391344472350621739066242816028167796796637103866747652914937315410526452374603751938832541652389070450996237273044311725827616704527576027565111098927054208973757367957137009087497347430163190205690944823756285337699605188661639871803342915129483693739862878125734826130938819723260650929525285349679613640335332468526766573310184949304874987683794941072758974898706732695077087132319564521474240419382351890315380886821179011335843289777928426123109785509366583803881358576921669942260131808862306810857430533558541169400667469324118798446527976468595520458443813609504474438088085151731600181769292418026787282079459202417136253763510674777868911621877786535918311607649654178141180115995888180232382754420264418672150287991482777395721768088624053443852839064428074460074886410952423060163084459099028779137948433465660838391244102574088147258391498797995788903857693821082115504885682445843717103087469949052899262890008655719579111519846344719196497758109494936098058389510070333488226546666991651105018310015154154876963877235649242964456864429123442255478005738805392467542563112251426457955830382631957112284788439306826833820497270719766943032232420934803145862467109566572030365509973417494236545498343831626534461975311982608524352846106473677024702593604200420958379310187845128979341469670384250491392285945248699103193024544438335604953892892725142837381893210969433715570541473978263087496965459184357934288246176882738112211232285724340620910183807839380602602807752239471014312217367570419914178330503669407730818069192650324317543992410765289886408536759020723450704451163970808896735284381581282495115865370712083118720989583018279997672304996808581472848214333473916856518945699774307880371256919187656293234255732459715418756168797372517310866180492530304214350550163636532081563967105407905320211418593503049734514193247284338955967448262230219056321411501466360169569809127515688624051577273688562918203560079512812971459796125872180622061803527833194728024068731970007455539975514144391485691078999379477496379091186490488115714002972810346561737677776503597979665105197452976967960590726856769618213678588935596034191146782896183100688991320631931773773540636467173387868138868327605170275849944456582489365606291965429773840952212851256689820180913892173606000951720139115687558236717980993947001009522035122411663470504201422125817641686482471142150395442989572306345228097438755696322350799651265678339136985077779020555165098242973569321874632589036353881194890709762062217391846231888899815818122808250006146095776059032774155358958759118721890336245731310406434220164995569637466875176168629918665851305137506672965747562627742723647191379749629505085383119569860951720905802579710915478394880305385360230586322041940131692605800903083410703815064634671440005510191135475728412471254834233553754350992354711410855975050326929533529974241860276552773558852192127393301042256230292966671581323884360975525599126798215451377414831893002471473383870186674358327121188767096446151146911885009500997548657149390355308863220764955739401781390416780636814698248673995919260783241181313535683308977925866194649780045621905121298242877117253869960727710862857099634791631777484410980943834801979278605043337069409610850443047981142059115073831844395088574756467229658221132863551209192504739661453586586564357987734717942411708540871469442070951305315526134909652418440518762858111478043377161960343848165738862383732330972116057517657360046405330209230586985207597118587553911408221442906496061693716367263208207161168374741542376140247500938471484648004749709455297579940824475160853167511812341729128611960203734840145199434601757418726960849524851462982113000737603530548617273671950609330157872545396883102043905243770121690946470573121420357634484586342084595803190024558501724547562682311803455739288588654465859916959419039866958463334105852246729782880542961163406377478663974820604498317262529234951276946743552332918180943964028559897845909830501937125807019216047118723550168495666159796129819936766553765706228131603193564161512134617648937059019356798710159772057727306988178343441255576458372090743489701498778636356333594235132825598163799678978484468116700655922053560136003081508475375650659542941821569454949589911932437410258369146210731149994761458587706569461614997668126137720499582950860386848049197814944017754511607734699493330155158923488473038455830210458423181326201225559924705369791586609209977449746791532123635807150782849997697577021037722334343636859903396604624805190718305196175318328450277879780167041790609549712592845385240339719748450367836782782128554137276268668615988266679953482920397925767306166142125204698820381685027495645983683283597301519366555148726423588162756789559152727620600065338364604836257466998220751040486187795103991687226296625744547946065625323524514209730644668332081924383215534693601411256405739251568989057766910721505611128335049641662941707078603888971937034287500206745411182914541135492785974829104925682741295156464797031551251925369094186899246516349015068220928972999923638951447331912315898434803507888212643640648375641054763400022270824326864779051269412396371216279048011090457901905821776336916844948745095699545946037287475522151011967138608949866099143207633969114085855921944266952913587218963534023999548190775843258445611060127127297071974944199766277431662536048682449823878121922274772836691248399577930413714663319722476765485710567779954617017310531975037672964574270538692968688255138245752233515119908209925125535815464129122490306292167420159804363465063944226689513494142941242927516225290242569523476704413269219627623738187823190088126650234764114852391201940559509068404650002197333145032651653631015567368044673646780397288456806129854370490462131314790313498551842141175716090497006481460024152053259701461945279903126364445795307095029215972070059801305654110033987537575168505062381864523148544215843207157815181936411378082477838726800704660061983999412627145653662888738877447073706418248701513292213189732934966240643654373530330598215328509896834900112150822097377275286076149256666718186588993306294943103162890573241052629783755209501294694995891998689044569395813326511785145724751081090587773255671884106941183253659858040684178210431909152733620349357527031330287420114816454941226197167323267032155133928339610025510740139231596926305540784371467710126123893143954927967124034394946118422605164224980477545419041194604139947782061502786379652166055931128635173040788561440091413750799259844670021650115124278940138308754809999523618683287582729919921516810639016865151528017574351871836979896259595922334762307292378241765903804191264896171005793521145546201055832288487932759834150678201485246893862732251748666432596589756216220519957259822185776543539424082487692883861886618066635838654152416811921508705626405770874155989038371969441335671216411445681768306906632454916063839921443752663505180576575161321191216500318102322794836277429859980570870091540783640698535612797702192128362670858182008950678114006389042409047375034592804700836501962276067593910962915392956025085258646696904764499507224975206088077558887283684653315029755901162714778163610763072739560828299820691450486406037152005205448398466055079328321100148055203935083566827098621367070509775263029888220350505029848831323552834320087804663123180875176434191832200173724685652366090998397898352188154848898333812166327387222784548952504686119617286980645778067371945436297434901816690007475869031738301346442880250967475249084143839970183786091330607219960214134512136631402274313900899458195512453162118131853700855639422744045277837335829689394657192342298984774959146040609161061206428529512488652629629464028491509413948468089705937903994901868725864384970736518784000188172428980628671670685611454168453151977432633811020326477168716060818552462715468086251434814028039761560526510072672428779289838352303639796978107692716812673481575706954785508541039557428804584509186874576642818639819391755592608045711244128001885346382843163189881612942296540560717561081017261510695459071357877578946596435928055876611202688391000234752804800186100247598737441338440504806676272624401466081757551513622561957898440787445720064505098640574849207531367434854924375925950863680684636420783176019473354484146036721520648114242405266927459128164366588771191326879423305126718286072446580394056976493634813061766680022166203150947203679591292430760163710702141268660793627899395588267738478519433706129317529310907142539558740721469789355102653603486570794159952211810799467700791663596293451312495520265729854876430664383187760166090933612745291112509247937630325510448805356236828547617423366827941573601207346598399760286586347905856437516675468636031494391163876429647752553816611786219651023917034825985838179542961718873001830855731497944467335265328978661915312983719026309500552481629438347421844674968260693654822021426977524891391666745870539337407860022779122181476184308324844882605805186445043926780544954758740145987582198525141757871240975232277911114554611022315456764724494148194838156639080408591902963913556978038136708916789120756702581198410285464731444737557508383210928980514352119774004170336945111946403310538829061647316572165021782266519368509908262467544427271391498438834655596416731370282104830865365415260589224192150097363931383354949758261354320609749752650030713739489334038321391887171923216751070199764852397004382539598250775615241772410434396316139037722082065895782715318455024289018352645172239188124500873755012970889557484240648251179255972941776935171590909091365028962322632828545223118971697490725833915474722706904086062414608357796736499535417777541473338947556294151214348109927478032786770892395307157005911848230372887636256029308014312261404614650080856676976940272480819280512120829448424725939428134970645432992407540375999832219468007610230429025913681038727787706229368963301577551103895508820703190668070392325531455297793824350777441215011693959784078353803654882953158287359390634412641231975019173921850714394626458887498767440551209825599502957250958935988818212967883114961257180046454927108710506878303940868696581269492407269980892995967413541242533818467979813730365388313983175294287398817836144898568183116984526639621801641503832663420899477654740609317205398920938089219279836627096173531767138475014632247661645458043190080088895725468161709485579086653123510932740499117625180294196691749285912647518358006051518442401077498082589183885376244353093724555041845544245658609855328309891457740275452027909066737205810504776304677378244782878343208103447478678397160241810119450224195141406610888005089773648559098336137480427020410236010088188302240005224974680852981231504639040455532979478406234084046908451165396209527796895383936162676058056476993173981089225692352717641538316693017365292915500097179651047014116128578764709864217822747070805219902203854854175918247877421949557081466076836937313779149034463832231727853655995434966721403334220421787579629913987666780661107576882096893470888631836350835164774786355983369542743355163952122656677778493166559926232532730559488046122214080328363307569538580022358533371980250379996413326446904549091490883444139769657365478713695285380238739243269280053666692228948156830831561045249993321868541748919713029002240305583883872060111755394495766469883720118996208245335180049324244111281779769924517799843026286396850801224833138426965823182763249701236068983984774894579459017532200438749257307462169236249435419624574422709834524959308875230399208187129054402691561163320725307193077577092686127984452709719212736926630608418399831479171752044328519338679626641910772715686334886676373279281725170375731511061304809999198778562713105947337803664196644134299477161022127829778149663710254544822130683438823242737146725910778969809267824566252998738034503321107472407502958395405625249985474812409336117489360694645717911408232413406939056243357573766107940848208613598614032135826923003891075517633025998019533004640259849189966720300468778048464432430128156245577191049555353447508756625001593084606470072355520422734621016671194488282204428666834836579233132276750194483678986159564792729831447395244279244816897526964902195590516361885514349873341841155789661486219166991452745394808376906497516107197416127768651169966843548079663525657419472628649932059027086993121847134448404950210712943154523516704098843187342481140010937243539790637305412268584535844553784849398304300695853967786769913236317698094517815601766908515637824226123981389487646558331374162465809258135541688785078731417629429478301173104626354821848254913568959690919303207360722975744678537978723399929488563188564485656269931129973213501959952359473162689647088172958723052390307929533880106230945853439018702382735322648182785055247367548601985192882203535337205630772813442640823704745554908634837532169188310436197182827170718590479068285722516136643579694667126882137840290933574418024770243248551534762249288581305157573349550415785264836973109933327849178086384096759485068024899693841654940640508194510413888885686672409734096034989617285893528386230117340658381039486125081714319575912319728933447459618623510151003765233355938485393469111005104722619822466728492668963792612069136648960726393801854612663225423528855896033819074404058703892334122109763667221567931646960052948033131214146257331765538405547880941585559521446364217224850634698468167278367168496938352203627904348426011546026867908534358202400367766622028591058368974813392426533641679984398626839650569054247780677014673135467068487023605256573109034403884073452104087558126353829157565744052632669655056982181994963587742450046406569079669195306236573201118079926459802388756593479704053928637153909654216347749656063435312203749779905929236687821649665249010249839844838802281960361204879835260638848816923195836972246315600465525448461709905323188933134689217976253865892323246418654142111405175590853103787808769402545007614997551789832762721880269242845556472803694695045437928819374833179583974974967138380057931900899487012706369727263619944453269819713162323322512207332147013098607895792075663547697829783298311136110193735203434160158011567950715369352077032748208239869044082807433323568472645515201928811553341227904005024952116448636177692665279522640760823041425985436209445212348890154720574300499330640136080487138471336131586027812462964291301786068161167289450268986839969000889256112304583061913307380025940483445962194310404695646049830310636931918438130882791643464684226518073035314918574219599243095110696349681408535800114764819213761577332412267236781302652154573401758953054542862965856597495364428939669861426661267766563452323528824873976504410498661089138198239001153276823129448562138911674526921914917147774031687411489344211201662421492156113834502643609135611938252502051399240977470020671527529608925204094834207356494622241582530614407375953015985657759015224967155139845499671061871936480140433823459417763088634934297194203195420984993841618334297463734098100939796686908374426126783333583116194379219279985271754477501269244868912345763111072616328900142219542310087792380129156212776392607063308675762214226000210680732353062735957659292182224583834286022782369269133126778028664547790021479423531858849857580976159210244091797675111123286887876096414284704660377959070432601597974943374366532262538531999429615510091889191872035081488611326284677883652093424622391044050558433553312952581212898800573454778471347485723367797006986815168589320445216976289573990669468099444453887461966933820028380964600578559730405490380853768099929013203055247695888186552298299043581715718870119156258419641402478645935158956942270604098883069276417397459547691536347680766641256860197655362065582571477133012333189565834090061700659968495714711508900431524905710456450858461975139577447558445052210107529683117244213756183930541135005987695075752884903687989246762185017809130662279223182426779757420666242525962382315184734522442720056818559202287721264095173778775033383678227385418683497373417457146384282640281005886074988183849755586403073166833323013194026902954506055785412289786070663790858694429780175573272894233785061506745546226663914339342639037888509058577849775484334851756340205136330742611366861563891834723814977344503182525315208115162344980052634444817528353600591547768523806682689704144692119973253847226801591833965039985258934047099404578489449777376603252752522696653417347825362689225292840689561948829802778437209499657247827311171321825554036421568776062665504011345497811880549679858045848833456361606412975248930082017058625346221007642281289713550347581787142760845712686271737505501747023698644494281323034665468183707845139371022825393214859829873490273199063688958731386029043787202075498473646437754285638245866224039785635229443000139297424815278475398245990780244851090845755469176358363152646911384779395438436710046669862440961011303066235648714485666401456171634684689690953394524291544489532298950251258600232501885572911158873437896645947079255427065793427246057104287433789907415764324428862283967394430087042044162090660480360301241879793374312922591291718757849773463530963346906333779081217824425285290834421765047069559066773141670813673335016834766531303672107266341922190316798529433026050317787817008413389720198725791632635110495540861507564347419666537281069425609225263772843484202266515610343480015523759490361702100013215072593288149226547970743388576520938294668873393462637050120615866031356859183973459622318682725560090238287492371690562323680588785561929957871796660526139829277289851116682506468367917304161598832540204353813087524831941458840341420851746180366951637188836442636676637813176066893827534470350046236555365773805607449584824538039016826442166741193241070056610163355724923087743685060812034094306978210831760172592497286723897845697063948538001471295607690208162147787828877039430046908416768116032881637059594117405343704842573233061016215793888507372993493444457561590120349850634546515163348945760208169171897071429232229635957084769631162513318627896300733036832073430530545052553851550549025520781001890810463503342052599640485432104012288070332576491856484620391884697915405879503133525015605643622232107710347964360821290326766440402524799839979287541042633078195690570747798755483779205109656939064990242673439377186892860224606550812196545429054675378631362300891095293511955225667679139369930232406146175615988608901159426995450278006834041983575375369015001188610677374357394271929830407318745376429786997576096068458921592148237472965622328619720450323287699687977552423365451481175862687815128423753316342517269392969966248082806491542354218458165725013110772465013668258976526628733348034328118758582496582651709519626434527514521833667225972659920343239127427864158322205489415621665475115213228598446608646641632214926009228211910318206424628458650593521509126951612835276186904758589901686460397639966625411336512603819531452951793272389067141782983246698939890666676600588920766052893554492184106670107945222876658048669096958279617101524025112734697210379595985977433380145493580361443140461780719830092493018784076915169215619339285973227975284600544748649218252002126939670592130790190187880173650784128450027726269628036579028773192413486974422938221311295324125442104967609100345437583403644126998880969833179056266851582299650607037466199214839823342798330406301644205731098586679612732217155722958048260893491517457594439148341454614554373929338918117556081500537045278350643813363404752696909686011334081706959338806058992364609993551227838228762533960829254046971752947676437868526848623761783358503374539888765583901098280863504036050573488178935505682501859760852197770281187047392746194813002355610131513331679609991530671763841155209891086377243855191948593798085988198342978736550360522992699028681525256229749736273895413419571860373769764824292037697377697097363495911217268738277887764880537489286348964540852972348031601275382954653115364519638136165064961529027838127309684403763731371568598868059141561886271276779928200855790646608604415561281965660499219188939307307143359933308848611581930148319467803601267281761295203927593786578848681586256981143063105535856848740217153993359910098032919630330278339037327414027146269637475295173378430044686357792966430368843286990946358124416943609112163210602079985078611605159332489718190824293545775486175293441407628770061861635018910545286161612474602662266630548475019306211931481862959730620545657542661323615312781393176566250661801836118648560841186974612300005443520581747426390210596065433996035650999448650641113379787811842623123473645144202265987906591786793541645708867714916766796172403542032717497627667126934449556180388702928811081923540834521950754188991265133233156247126193682339930904508355918153012939630351759345953284762284296004564154262056522147381269297441319938387851927851698481672548759174320714814880913026918045397819168468405910544082370450516862538318075244319393375199907288965186721870733481521175280006980495471231732341819098206964027268515297392682382127775033416612156413825951255761987952984601490897202915187456058224299321424614093314562103769793287486369463036486328245332771376789664847920810410098298444896389593859543056763276769943978451822837879493030928105102858977891905511321572413993285462502679606353543948241785056788690512774341376320019721484248441635518126486454976603273235528879447117470209144768382891298953683381948497277768453857565815594464231478253303089586964393211538337248457391442481546150775465356102151715422021316346963467661712681592099128780703506873630806385182751830314199337789970272574214929237233468520043068556265972478246061950715180202207802905254279374957643368392165471261125487174604059010618497915345587426189901566616871635290294659279232285722530026377104379843791948915856650044467947279343930826919138018780692264351542736502671911082662036501998292733517011496764422210839294552322054169697442596331316792579918709072737023999751934794365831166440012357545628418827437611423545788736455841610196199791230141854079534278911654676490596762813382661225302138230185445845393120633131213126088772529420863997828846926292174605922587962360081768350852361665498521891202873990898996776945575579205807270152425463437288040094010558618269359866202995306630439272723316663386974809696867337717381134505020542275236847475270198581180975072731493363361067004321792156958466473468582623933519053546236087049216142107768565151723095360118873235169599504557971610368799104814376634257525197557499889630565907304457892771733577769928184558051493437654615558044720129791375524401305871639799670364981763193801219829630166068721493180508775692973739367010097761691528647822204179858647832793999393395713229824500674713429242146744788182923887584678468191615651621083147534221048681704393356508789272853369606607102147108050505396577314033310251460723724868379866844119020636921921360593012736948713483450153716443490580202109218562947512655554130118421361096775032826248741662027258938186010827845876857847238480057877038837755692841314864261328169873953074069152178155038964550658880055127251058082276501955449623960700775670172811327755788197730470318148610120909355217126619799239408446241503625423082989291569208770737801409855720720030964481851854818839848186396159062521213734849117418250222119168520383087692164959819960558572813078010123729456997905035463590496177984462159791898468748538286599361490924903350757389938857409090748040634100194459939988254821810636275210638178871863024951620138529111308678580267394689283642417821958172219542367425047616228374891881193351952309257972877815162061916307565551172352627968121533640723286656306491980593606204452773441318245161266024600977249828027801157257557558443411228307205546023347152547553526652253063065679611758964056291029128787872256259318058923161645244040002133199497831152886021170949486519183400276653185837965594029223772910130513066235141819892078009587491065806889500422743368911798265789558395930116766304209112789884118258189287464404635702493605411103149155653555474912093159413668956147553941584473609254753289453823601161416881364734441153763452191150968674113534510574368666063079861383515739386821153621528996208364099251611214995235830439058238799764948841726855521347366626203544873197896995171998001587944028334997609034339718881015917485972157611243631626202340383502723110730332455492627297891559279674009395052184956635904793725872557445881371838990584560951982281166868966742475947503762336894178331909173130146597446002100600836754771196846626079468026321029427127046015545898791716359453973054163324158213468329278032824140753038430183528157416195297146077099286383439356301457716173714972844810949216430315237827197361356662855568310737618365369953121427914116471074537440258930315164820167381998759975562884169140807531090511255882356786987661307222590621844592290267352001432828889215997910365905665103215279001565009836221501399627305627904865822825256982395218117017780350355265230374534538257785462927307873649111387141786898115455326129840429878170818983285735705553958455754695813145135218178510469494707528653757594538882773394355159553057975407683785062899990944843909554471756991508846307444958370636944280123672685575192638645506635084277303922121177037481209217147900235568510804093942153064644497523867521395669567629932721009629818769351676999041837684786869468842698184705913904948650815562563335600436176186362138998210323631502761693023088665390135921267888879943882174855339568677569430388858233607579541008719010948569715089171164650239272119130454467061878168234006636592027950823675455414823773470086643799255953924980770888273099731120747564000755988438083389534783918606433903306615113237165818223472176642697450710440007395098773022974144207045355351310385638515516851499759240107935867441804536860073491387963912790824329537331706078257866253988476205343481113316084229043316567911569194965081388453062185859263094627971408593576206015636006109243607097726872187103968164380908810466759079331709273397476993576740572436372176084418265991706000669476256296043641283206331278202075328616282749101364648382713949787801096145115998298471030742428662386813008991325686118794083205914884476507874557512017704146867914186044663367272100524579704885317932411210835095917536753749830680759918640523288495174798180628927232660927153212813966166752623412682730105907534107073935430066574803295024538704323566773863267837885621787855362479559369128976392506774276136903032920900842922160530024741376802648074289022683204254008024797371759831005898321753120520932213629457454958597080918693099590264574085554890221099719507225377949175530281447643554635365829988388198710580681531655335167037654639623052239267808803414621965210693956410140212508439178273574743889389010442321978422611922174132615938993209993947859501200468441402452461860804218002239284208574907483622197739755693574005548911659595453592366878672804550466183076671182659384777990738853205777105165930472337194579535440034722531054114643975565679392309207810556187160976327870999614422623414992376709863381146019242958837533495634670876626613877816672642118645016032267623179426871360837915550809527371906833795725628200801111065068826358597509028429606592668026726737052050796394737430525574798490160245278351455384507400395963449980678923200040680259540518323784828910552609274030190942158770407365710004998067688959565186057817170914262533880153044547688171779233972560894796850532491611796825852712835412417079259528324511248333107986077110003954647776973418934104411883014192744827587489685994841291658956570873745206312469382120658060378782870973956904231503684683978405380431734604171048236522279908160823560224328942273531980671512994906728741004016346890061240471185118769809317967719444981046437018565251971908713755044285039943570966205353164130372498858092587410419496849560892053536694874286064812663430561532511850917174994109700320234103826613477196940450043163920768046288647755815172644950555058148128777334914861897837377232388155699143681057302538729742501607071823947727466387310010637677341720645323689362793420308027567970758814028387801351279223169917124649953315291384094903856245505006780924739612510993677793643748730971879366613248325439101448004853997949457694107818403580334001418926249365988163255631300073251107837302698682123366024678624568556643960432085347719791820619158377108493159940062341321808878375889577789863633823679600989031092437774529883073053946816344889450667281669861677048597562721802357668088852672311995035818716479752493110275769190945351858513252073854334887298335089286260803228648229177497414746185328690920288693538312141236498455281432281319642627017092320275872429765801730515351050618974804451687256691265415925604778754839773436073301577919990772821186058542013479001855952542605827032569359424011617309025056541523974350983349185529748573704005592114107476442355545150576966457980001998989200189320452985816131997002115291757025864711934209172002280810496324498518832472164943734978266278500793455694529458638775124475804939870820821454611541324636230089134779367849640947016460873546326830261439128531869927430896188671061550681926213672896106291248171581336930845170706744510906567015517555454789122785973255732434713319383659865260868719969880185385328355245155413486988665165326479985036959684543443298847858538408987273425377394379943050764436152417965732077044833189621536634919872879991888183260296635722945310770490730248794340748532892837319024124127901638205545180925619679506394063557909817087311298189084940494993970478978407622667515549987108827671756696674065438366846015184976158271531735107753256092844524487996485075352625611755936702055011728570901471611999136002362931100388100869962948140445393370583888917336832392448844330872597329658535620169493272934557156853331455288460258350376191678924815903126275447517825090638327751178508083046770504376095630861258121223927135669812523286083299144578193910562545106108262870730315771940047347392387809285532229292137983385804741176434658617689235019090210528935287512037636333529935599178614503962678461265939472057413117390352947054817706930468037215010591581856684746953828853501097195692729304862357145624153098871547229866995321092258388606019812867019012479297623153649325339303053590248186091951130478080127537200128250598667054868926952331170473442120401265801037939995763987433432475525918980743127945096047674142652613961818810746367944603733583797234599911357945688684021873380726267086358343605596455664552847591852217595379568550814539298977026827431381430151437974814229766278971120917082073628197771088337787836823743195895319102739537932839003611879594599627492489102138331362672224225603435300963506918204617359391492255764274684649006216267025493623461270688120590069174510338723411429881688438725523247330547192093256914362184859516427390819323866062977370374274730186986686379743694846577943329691693953168109719544226783699230353368885617162451779850935944515771749810006253503662250182386367966458124280148691137824722218306018140792370114157752504524007142403271802780487123415606065462154237137211465342272929082528855110913530777888534736924984266716396226335659096423095933405222166443613973987002905536435354297427245195853406779480863266532696106065910833819449794209981057440629054902549130673894890617156873284528773104577888764832216477700772781722741374282956659876313221387907681978708753495681077782432793075057388882737109521385493664452449836333803600560957043243769132033260130056301270224713692367567790995672493721532326436551913291488162592665119656589992224656598317136757047432702361750568920705803590424865550890312327327717717004661545783791065058289676523743526411268965700640119067110127588621326382796611760314364834094895254024490334187202916675490636422988649520961972670488424599064894045094444078049323665766382810318269426276868211178710178880742184105972426473884073717525787668817048781057764125062533962466303702151362052107689355961672070055634545298915606274287188689349699613275251819237017688937523429400058707177626412334171913799171118838982780879873031206188199896250711647848456022239238602326196229868684553756064167899494003784760339759309590680162503890850426014845910230205110955700001748578316791751275048458232232349906819620590420609306360863218452021097878597581578064426839467424826352861600700781978153461765285180168978036766576926729017430000985573248558652683063932155497526660147095322757977203451762890072724996697334809827327951521812454471715961842300713470389423105038408976332375030534916005788343547415396919608789636612874388566935283411644422183030454773552204277298762907792413458890728584047379746928372033531154309394285590886601572047170548571828098551755988483458492624082928868145531929643299365405342117659949656463607098220039522220642105448047245666021728415308962275776776517448453952929387032574551358088691689059571120758745673594565011133379837590759148167622933743633226545655454590992273691528095573614976656284353536984045527070074304458227141093708247627001279873779782690578066304184758880170241852368277462892859465758135977279680210299277121083325269036346011134528906643414866714208243631687484163893431163699115412855300351971785551858822482862622034991633685322423594930115382092460993185960913148311927191548335522337688228704312341832060360752448371978729588041350025787616052437846978607573288544585135786035611289662340647179254848821234709711511351961985911548995225914865914380422032729517389233402707498685168748653870835115144411552399814845474495969205647260186398400877316265314964893136634485487303716679072548936036339978080478011239858724047327588582554730327470969490341809612627528671456593027611404428754308425876666467406712134140472023704799662113012496385020050591465938699408075745756401499956843847297134156242471434875449086394289911870401071243828266079592031149900479367029032119495943024093868574313088686769672142851095749916328850489427457537788991710202937941253490925532311289836075691553881288677670848987103783484245899330359513570272481612718434991909953461827110600770029182436513569182201258119146200667269631660963699007083987970726250844888617669392708659767471307720179148715437620405387537790807759603379108151862139542466873707793547960120026252711857979280203210249594276380158280445688174959555835556347106477123099617136724622726464454031652139660217364887761573849820313759844947197573011921215606893025054823498730703404615222630835455192334014044128033103160473697305422405939648890525054268324883983454739429549610503537313025709513649031769647880088321090463308774094469024063861411845012758239055419605924618927523504459965376600870970307798625597131728551889061907256427425551843999758812680054706367539260887374969769256721880423547923976526440267383677905220832283368830772524049471102451836722886252476713902060151726050668595121685337288667924308544043727085378667236735171569442003798214421251262375916615988238591630490700255417163137935836452977386017504505974814684764002923105481666391774882825379904384533678924810509921741180862910353780346785631648551637547502523285375328446356614733918167180207183610057489443099636386646698755861990557303987945875660617011348547505494412625005852411669991554548349324853924315235001884533251551879598535384670584548755882838709450119237031012334164183505476865855899142627817344406981643875740636219241239481765788768305321063293699226453411264502245072117498085856446549632694657180352298924261015840681166812242626611783680736090337861684773439789114534341806536333921766440504457092671943972865485983422661346434012480137159202842054574777950200473423964619220881970984824976846011320672216459605213557186412241071063984890676904000887166372009723722749556091203263129987374732379488497572051831507221340133517963118630245318659108804252220670311155688951581098402846833055091826857944438077328357227858201660449736348615473434957146945115438300142928595448281621327798510067342471286271615362171144375937975511843393590559451239664900123428546837450984452010645745159892213091515325788597415703198968570066013611889896385053278470648752184611846933705398513013859150288000067170828755862067986341185717949115278940482123720340214313108429953231300339243729875360011669021104626218993098876227793219076652830054838548128746640956920721222965337697697688832856141370078208500029368932926174928661702142229989987311347923113197215486062356465565989895089034091485470471194687736361946317696249662609684184262019787892347988878133640460493615119323106968850829760161258219909189911415059324124857584434388869320845759339166517358171741054783928622042501776448992351498493141326059603279623919416975578180228204286151961902210541417286992430890813274260423790195405270898155258123453262016409537483905555775402091097362611303925215032732306685826083088239059767808214426329031224251507771333561966680239559861420145223424158499764555859049506253309895011592499758103049621454276271029546447889918824138433245228299061686697266414959870103163555538804929702224508225487348903928749334374131071295680590145630758309095053596299833709309463060692407886471908900893933995451877008061458381540576176009643763155451523258437300670007180442664485584683031739073841921560598190585925543154949449539824935593466322734101360075567964740221391950739233558181051914902794486599112548801069369099937285201211583656474256003604329812681124131408979157568492148570800489408457692732273217051550713246232371152574965037086114327263637783227717689475491800906783178903178704053945766695760085866441930738802216062564021751168607146619373791210537444750704888393086242321378821678520629521191040601292454230018634685138088909639959417978396146412965684667915930069973818776783382712989718864680476253885761620993836373262264176854309342391644673157437075908015153010870532749998253251232092630641129607146176049395895524007833958478822403535002711299181802248524408996590106830391320421881230631327728886619941391333762885416868363172396674102047788828145756117105233597132706827304720055724997882777916407717202275061088767228153697535051847495481798343444094136141291114342464612821185564510887468422824379778985172110152546949875673662506125196640613360600936230590532641847554914497688736624453955442713522484742497726446653821074203759275663061431317692143292817398804471427067043511382271514315729014696160284897245245922556358999406686850528281650843228865749504721027669515861968633950646049361806302455148081218731659134525105608882459805158157792478424030389490413443131302749867449487382223796317559547134155110778621608307752533506611626345085471395716091479374496928465653059911876530122779228287770516525097119930566666705175778443483384684007597989898016047806458291199184038898406399149255902062555164407601435065187855766698798358884681432097791088116043540998037328831044996903665893798251225082306125340934261668114992787437888315812486381929274745310566073439649627484677569352361173012618635719478627518716959061332876420053161425976845344491928754686727428226057217244652508348758108224369837191563578443094997883608601904507187259610336528524929948816107923752309682161145375158842258363125966960778427830673113375649098502361559729932189624954213548332446176366972360577427999824311262765258464952857277568792216753973749986798365914650502588211025457575847369653096874688948069911362078974804703334190225846350900614873698698551628311487511614445263763045454014378558870863550186568591730110203217931691393547460917018136937165514977037245653811902464796909916291288911910914402728647397943168873020749586394915429146928286742627046714052568937655701028550830605244501124515883982693287911390983434602032709611657864157412204087913039858031039701767059647794811400651271047937255095539484768048781564013786902383679946164547208974629919680862222316457943848406754159200880661007031699030169470791587172283070291702608505196950898766680094440905626308981587205612033623104106075500351639811687985595050511351415377539842627154195124666041666641862371953343378439178889094970491497660548414422297528536202267292411647710149568846360303156991465640309458957984132132411500965573488227725051080522148444774543168744212709366588991776637969065361003794854679588088358360092619469007525972419563947827507793671341700908403367268800052263453715855082162785095866557601946584523803271661679304345178022670133040007389864449012907937610251588408256645134912736843272198189823872618255017339047140274654905124541970700541470502832504335137143641156236921484574011153087688563957616012637557047578670361139025361442220296434921473460498694291074510329298312665298386613668129482915266749332487906687756239087826958115627418276586454819303841669250249454710400704872720857721567634258739375704206948347924538921318244186761416998210660261225530591220046088318684907427343341560744050483552652005758728486419203259247867859878816737904425006609929289296165253913179462883533447089984265292345328731271294956990526397726781883780166527110225096619780163669928633145799124543548843571832760874991489842239742842592872118919747504254557374122247692297777910812593959862251061744306792444634468295003138050465090583162756503215321527068268949088978086938023199418918147579877202624688537406616952696806475655505161738174554700054994239425916751075455188427297166849410654306283643506619914333962463787239207394554202255451892335567432898560477979887654467551887064784143968251505733312590312732808096372812056844092856759368530433210022801764379610626835691073891014308999209569745162050491217321738229037736591892471284261012075905254521445144838002823937008114520669191034161300119965700269037156300371742427656091882454637319790578545618889520893593634119461358830528659763869927970951969690508657730593143370929080306864390767735628578533415387338870161531532376210839214720894074771691663047474707761435909414079887868512515913300216079209299637189508665665868402449585872999058367408427943757460031069992008399226234319675551303030597208699267239777969728583863505250439818590788770978524788536562127208500026212137043208787625136369740835738484129887471838910730096561090200587871003499147761453186027911733340117777905163370687651411491159451872937364668108711510311419931814947017923891662243941203689373028741447970553850158406462067862343505189770447764323622493707569834487894701606886957331105009359024650059941683697156878788094299157174091104554451068345261121737186178341328252433685206205749012203546710632740993075195732887813600320351984469820337126140297522608789520034003424768443009895580608622466085696652291108100758283830890063066728118692442386795449234118448596144368516575908579456368520006522029177768279577054185209472478539047859533139738940895972135368046762859965165799958159910124736713068430528279460675850976318745427717422711000141149764233937915641390100361410056970551701331178187995453371378092047935412611260997974844069571296186174088873561240036135988418745370882959311809261687854232212763968103080934725881896613515293054330225918359532686027353913890296989313384383422155348690187873135384095321632839826687810339774665954084790870741179666916827640109089309647435979657913902595683906785970481784585341252132893847531497550177095348789585198967607297220887902907538249341155889967351734325052292067781649457006402327147798744233477546619959890424640912205931050535882505964175891506746895363799560295587070696515239177068795133191637758966128081321006064430949432579713982324844006742016826759345886002085932189486838101758809004153682059824675239849662769217519583398354152090548383507066198703139853413772548708280300292635207282866326219165130008927223419273946028424501783867195341365161242473107567189409963652441507753523975576035537259647477012553250912386851811279056145698747710036987678156280924183561610404521497422963260777539460781898903570966835668924220769414769946935344996669479153834760456929501198114588323301765655619530420110705948309073726905284889273783050382598824718466970285500930410390495263095258181441383617624461452480153142995602498654837673363177842594071423738647474875084387570910316706094401700746478245758754752598501377521481947524430539237973050088187737212188726369633209656251037535084540032689444765735784506068040325829873483220729712410357215247799724316076419061725807804174934249561065672821294145104586087944408402448950916923591447391045443331354767720881535755718499688414604939456233289391662397982466193196467032482355530490667779628482037127710398030693313038423501124363293175339301618798026381422666961084590932471911915758436326059691511979521937917107261612704803902674883012310831520893736717020831707523488356006040387235339844217505229693998414622595388184973632825733693991810993672248614351742807885817563694819382812706672286842846743389780021679335347036460999313086204213383714587795190080334888653144196042415231868608356692944666874156547391434845442978377034527747938840379954831737506337664777212796744219633235175632492619523439410494656733532158046179570045752904532692631469917188663242389217487302353176611331656650678279906889696134051220620226141174949764738073797703056468495297904990741661287755087001826749313412841661272867382513495638112319184541084271721088473044718055420505782346078517947632624381249827884521751592003457925691567945973343166808599563244974315504322188824139109772373981447826376535879092528916346450486293178464535976498431129930746548887300136609729167774607008793635203241955555698896958483457173332530297783596068815602847928110954638386550339464777448260235271320055655058803700334965542545122519526906260534880207852009920021993918710525773108892475069545791040043267722666490452849790474631167210586086902289041316440990496322308256813087936304043752035010777999151810384051046890815887541752655330486776816199643418199833287703889860361564134428289571505967874036429096597318086306605698083086010148353334641639481298065545250514647531236379218430409458210781915372949469885644273814759724150165947086781436856307617668048834856636321873219825976339588498921907444871057810826503396931084096506291498738151067038783474721630129526285613098242019767528506742637807411936588802677426774205166209317394619272627658773919873902564879127130176687131339162373797351245744024887779776831566570088778443497138765346354444780301195246738936122079764435043846666128617548199980312437670881506757832953962729683289223279742445153100212205702890026437639617264647992736826835847367179040162900786938223156861367339786138275097222697070647117385840853607513065748437467199475241174040760012148412087140923200956405657234375087179727590250024149540782500533037569730346776044627919232926529043693425663278047305854548269179423593978511143876346123069131098063252916317269040759797642849876599970602176506914678116565415906076108917885392297228586564046872481075142189027423060484577022421760092845224238999005184823770976393668012532502790692405853052201443426252477781909274705929436310035815292824151590463096178067707164041190419807911931389401714241579898464366054614024108782933407485933020160170794116023674092056288341380975290332265371906408342421425482937248307745535995880603698723551908797939821280416443808328918032915950681877533192627248478218779540693125381812854966057171852033340040074078929720286163453043729607290973562422254145081274457828793644309789860944057168335341788757439218988376418543754739989155702433358389360693049728005139595711251242361177149332874219398023298079978295708889090519941672191254021171028791156842819647811378558911688376435557760397053403366494018448114913490443468877208450869712349190287673966608953748271041847812337140215688180637024526554392036750406689439783486574387830761408111077166045990473171670327752482196427776801539711501596643088414563037455625172177856723346585562359116243969252870573843633660371803551478953003164146418812172147299551847085215852223536332277647617654492512925730973621526737794293492537536910635966908848064813594895276012470998759441291940825158059760262489606766710103254935017012084524988994706107100895670566913179891654656912001332522639930319332049249198284134995105723580507576453446406981089464159004039636012384943956116770587332353720154658660115958809706778063532494953980743068271530486680993495728829515820825181998904208070188734043333312602739090497000533957412961424657004064046101499931148624060378922939932781681755976588930587287155356533212590366822594075126817822316496425640288952637421500350824844183059447885506070463454595506856758071456040599411285446482112863925088482002205396333252368277141848069264339300326629482362627833562948700324318594111278726067898108542136662851240617016387460137037007893809322904562902424095966597582326670733992380485976916083772124008099419377649550473865534719648607249461414800727230308022374246933234339977787817333970350280045949177045516541679568503715585495893776868982484655826271602256475757253058295342218366385088996115352855901337649378575600809646057038938871266318163069973223164292835112539987842288967213727661395734609820285817422497251589984207779918455032321613679106683969283100758985800295532703650101263808171822344127229437125593535251780742731523473312368165965904142835441048318144920332126222381753713137755782993855527382020256314201157304123784519831944325548260918008869068921632619719128588510635135506550499513106542947034213725166913407702818814592584351246837577203449682791818602784845464385165172427357446802114334478872712555907949411021897538000573671232009857986142638955465935738886872764324954456138178570013569102310997395375474624569810545871628682847206255745625001914126842496234583306199175884959825161666033692366213141705229785577333834079772602229845601458452373662268450573001848816875035377964932013959201193721805181727269849794444177334199138489415193939951010614589189771315165810727358649969804151956894916659216308153491218824585612071835802355516283457111914630211336191759183455907706259894001123763665517773516077503604385802461699898532618841825251570689828551769487688386182802329491770068177323323918494802823747938232883419513327697731505684372962664655741890732046812838931144557137612294157934436395275259074507688503959937746344374518961077798406292318946289774360147583161052154993380751110798442325237860816605508262509281699326780389126545074688906226441944124159542047916335602938157444585419217192787098211631231243905451988384880789547170822175706468802744344830163860708501034621941383908000701214618543904349816556681620664087816364665379663800367078660083058074368935210785440111655366376852979802379376242316662762072807786005647156093963598329359734834217678475782047287098505209661660522488778410323270826182444087629371004164029259370194363504264724893042015493184911717708293605952661804504246471300389360946815754414608796150853247595813439972881711869225043355317380116015723014053000997386098562178193663837975472411510366300030204519202176562179853311953226514186727092110281780564568386975541316360320543350295428326980115666074922472401708769084747436692943927921133037081275013694017418685377361394301854713487351565118527224518337357917441568228761955018594652057472574956404867998313349478379121274061621636812066825728592443206235004087516075642305334902774365075009717291914901058913899746619948656343376095061006321769226586203521477285733529880257949373641921507908408549283111097716187046259306688070167726657669755295917742869642070403401604857629603145740748860138852447020639240987493439873428805729716521268115465743800443527334178414905754773817044777687461496351779518241616393926505733123814569499904917130224790472139892018115061808703771531217573132820414740071702161949459264167374008904650464120029894099263194672118241532682045450754887554372358441848262727392069519957963384889597165419561560367199521553618857834968477221342450069858933178598084132057145586125571954700438161067331622587211904721283747024030077302723001618902119146495510005042593378089734012872093745161452447833298650822770800952866544884315461537562430028883841585186195715985304386668901579726082063138239914035044982871131612241535809789639353521896409814646879096433869715724823707622362801668902478420574757934563775102619836053941306869930682064695593358747306846418310005696061105996915386061300368559799965740066535303708341432282253053625428565943470303949827359713251749934294693830458994402694483490655324691954802334667631832084571389045586052465048708037430078993735347083234055029375502878560311607234560428121768996702986812391838707561104536339178353048226569711521695730827887357711465178634362292120835662307681710425108747668494000971101322761164631940995116333532571227858634626025680039675472900667182660758802639876971772399610649479023350778428588229198355943467244339540733627852936863374036536591207468970026749084076311581959021458753678643756470855481288823241011963346017102408923911565174867338491945812052408246769682471672405819810172493452014039580146949846628277247430661173798745759375733643621311109946480519821184694185959028702550002477972209777407577420495272162146418828642251072111994820439609485297884863457406944798807438606734614234747633790695315894943658099807243965223389371881814773286397767227640864222243109258115780417095975987191255843709789400262433545873412863664431761726932649753796985107577966523647715954871807476521214386584331924007854245228627338400000037056023576200227386863823971072528914454155050111835260140072016235723507288579542344310437640579364837788804615967909789887034794167600245220504060758476810559396626850932948118471647952265569674566295769292272262281709813543224046642401655739309802342907556377291408182096122147364795359461321700161691440402503591464049751174789882597482752571939904906082814963497352978293049221285799457531249384772333730369397641754582857124455509701484981908685732536472246154488191951071758609508258994830233718047273289204899674529588447634680307265591296898677256979211736981592066055290504304311949949316139671613488007241710317898008093950120034284752506350133782967448083342497639946001548453377668919694152888047322354439079084214950613722936389495170001887893793012062200217337920713713785628418405623068489109375715857985538012281332248151850311188476142401917218967254202963240798901742898398703749540775808219403365372827700452500381854785562540578602484453463122302427112961862720364684410148584359807987735543805085733393303838665120033794918331021204752454788028062079795744343459138360343899702659657285220731149309916921109720819119654221231977150311881582655418182377175503137934340080416148626557604864648267154161980317962552819052645229438224369301764810411876976740259317096599122648291766948624566966699051167055924089411035821990074436565348828688540463412163349857460228379506291749569963240756255012406986822374500879637820927246360344321896942889164614048276806496116176770421885277011548020163082732631221368593297667824411578990862339641069596495534584215616692354848046640183112820889457136980770398677667442295725186665591107085428610605563935209420488766341960709641307539522563818047344529132313678852042739290066287386093670958133854429485836565041114677025236986602034652132032225074928791696990341185052591686209959740100401169400869870797635087980501496604395117655239599805365985314120423950847119569268667377398870997126213299119039267368915270550458115747684264870286554729544652468148478224614122647964697569110650815643253218342544806489120668725262819927298501937302154332568088662106406265473101605713698052146487659513394808725203397027095549633188306077832559199030692064245082838844657164876785014867047082809708768036716037956620064146122062465167965119096801383062716955545464474906644364035478496697710831686947380974842320487642766079924064777889437457509895198637850598171448156313304847214102769940806341907775471580381023528094771748229736338169190519277585568295134965804283973696827637026443131550732150031310121445310245442138629874771394639437263023667412281256827966715900598494029900653910273240709025121227608664230994251023848380646786696651595826397137449007382780638414014171512617425339252781557098000313941270598709318815440454143760667214774140490126768412558521699164644765530669936254815622483323161045440047675303515256671596072141394970809362199567051244586073028587985178085692593779020649946199759300916354162504007201909875591943493694176852243460229241488610820258565722296955263948578274040931338221621481676801519223344657883224023465100474429522337002028695754970789932898158923642775687188342691252905342100457776568017841897129928683900155990013052953466627035703900968847087474285918947298604557748239894313100154229636435410993149624748747431028865705836961343231060179280950716628397383883514349322072529361536187125927776253523467937369789599720824694142517967808406880263314910927805373021934278941891049690264578076896243386175365556958699756711448933347521825142310592643998411884647066348071430246179671525937066294139770176430082232447888655848788170284420557826144250666971097441841530159572991887011018142374601181294995692685655768478711746049696056081147522015789466016369809725696173780475338236580229625740088668253313824212217629832293779163731867802923302597597574125194222888292395640235007851393003750775601514118336068273805933992919749576064575166039290608150063957702658070436358300254039633943821570537569508651223507588260413810659702337854631697206653262820706468068317679021204372366892613933141843118242318729230555902133060984960204391939487497720008772138347758919681443901076497896934906475528737753262531057772308273873937962715441755979460343742827465329709386329687074347295102655094824378661843984050209512260930078740737663017737451157476456711209975097003555643213166661764813683703135323457564276027847194084818674804174638085482599668227793886350545851008773575037117680652566484088759220814343676832405721174264462001738937727448184689001885770967813734054516755903379271421622911036152876494021303946237947429595432550226841561130555981922912170485389807341666701889410066078242039151412343207420475889091206770193317759309884091072648715101856353382375178188041387873470743176626252503773614797709930376003488621155655550846275983457036436695060947018939855876801715520688125228776442034031218757027652594101907536570810256680517987234388632920226409778740469455721765224858159923925193131766987909127980482474754191159130948696055729177639083145308752467275931767753977818215487406352640291624456212818036863039461908243884506335863931032118051180521004611643488271819853474008540123951871288909761509732004414073369964983091472698161556698157681687652190414197548197950751603148054152747854887821073887737041832430937519732123784803143497846407220574200803214573252742354664226567001811840931399682789921248884616178534148276501477798315469342092217421560931342351109974313067002940350734473385353350335100607640860515147305799029807997688638448327108311609222483438805607736872875328748249791844923188857882697934832598252436539766889721342803053070692336348054215922204879463110025420860364338059890570188607878636984403423388343768187733853445390709622623070410045729678606174238905964253403286336357877956402159552684083854873794434660554682364040636104725687508673430664469804754484902439473988184275468954709225963413243011145719501437731615926107619952748474778009896342580986052745915978525944038397926573821664849311677489235107646349812030464350526763385592803230936353901220602040055238206827711176115596212604226329400821801110618595357308186029875584800763202257216845248197089515757626867529525478511380030750048011062285350543519054982995867065029594236685925956545163154084358425323323411172699297850583912984600969473067212526763009941468036090047181598644370702534903300680237531108967524910068325149818591507365863032213939473396147972639690448346295717818093546106315468532253642346457995897968352996343672826217667537325716312153649044170832619911573672332694471546796053373333254373498655960649744595313086623351382904320085449252957228725423143769478843893296816354438711723741219243566083299157221765800923435339003996667076220023483695074870180883199589476099499471925519701955404012113508953148863567530233414806228736154317700349726084818452540414152302975651424346152247099851849588227643148711788062577569590511308037579643247962877108162634052977727116177982922047591121328227503916635303905457090743769695541288396727564504896664689014089753731650037749117449673663084890106413118051724193700649115819688155883718674598445160654918021042210031408810349790093328505054033988011029816165875265344147361709652349253472429854321592003773847246743903394476599308113060842817558956220859395320959340590509719907686730705002652994616010695592278662773981733372131516288944495473528438543063586789487686122201035605517310987730718457408693291199494579334629692898182701519918240932683605969812382589936431184295182354757179403536651847271146307884207380793720176360985910783346984309739212996241116023163373991371322063661952640615991970422484511219784608394185760259140696740035735926950889691001108145081438893128323131524831701988394200636638664347042288412912268251358132653944088476508174950770378597910402543154077583456237144182116864836435469516474874923893026306384890596598493869068904931018058944264972581317369060618424861579205794035402282470313813862037642936044411067095106942555312979887981289257659167426353462312610557969777572580132038870685326239773111279430888423012536407437471808609558280735263226599575952739597120787677655341417943234178460228261015062696045871146894461007647408361398983223881073177689887406090833811591718736917628886413900192364772775245386180918214350200152343846095285682477832975678019422869758587716748532417441503837635325319398672231408609332006687833418884670765565535963878540417422812880023185745620033868841927433502138018346429722521399743921319334592059901719930220829013324855959001481864973341414500301262549281568476252360508068601191305039688408361029085949826330244838341785885255187488078521979916179296559469656984390980932786897378521456845552719140726624894399342743651892639664419441937225114541401770490323962348828130055634797071924562214237231605552376045178712241703201083376844739530440949925851405751155769213314586326903477388078291453250006935540398660902736497359052769037080773398773903631090756255118734491054110779356003915339363008821415771543950704471902184699787761868825533433955419666285861103137292969951204992550506294568203064450772525924317515285579344340830266230525132076254489266145836067967999889871602062262768634099214227230006809919844608419499079097532629488154311442659800547695362462673937807441125203819531618852756452553824163892774052482657054084039801215938228167593725579534653999627705260648802311305725666925443662076503974618461814166701226991711825506498905851748974415715147440673295998031665309409038349439687097016405554633896326588692208859750424277936494668031538122649842286023397460398085722197730782736552445779185290995310865421035331293605320547655859312736514249419066360663840063004615846596025794111363150327235210462375130317526200294544396734507671981583626278334795952578100947054624103873179191787721978533423517327620627016334679733025703310174351522580525678309261604389895913929218381638662903893981915721593331776588450193016275456843577098846988937298973706042710963766042665955211832732389915631681046356955099151823406380854181461225435728160117479260048621668931874994744736234809631649983268490231545628449876732428743808833149339458327342970772822885491589174521743322349578371258811062007442220992407007315653210056094933625149164483512014262215773401219695924340443627952295972330456013969427318237557796417749299140392781289672565052104627821622159362119834846299043272158152857507860986189269761575008074434647016888478196215918105084987118658189820107688102727844995590859401682655344093241410882782240596773618266616326478895008602971883587093451824925827367553616270393933969632176870100946255290601588289404334398831801834412540962358476725868256552000353656937737384569619766726623617571774149779693033118077540583890171860323253972938527207065476821343581766721254288024571534142888239228141238835597577400200670917008830238510481710641273708025827317432416818977810683829299665273773251973810869539696235462266773758773621845342995027866501438763708928405768384851950813596032475990646040468126490376540226049601301876475140484798168489670623520835641046889030820498973477198764738183241792889246878092090915435054761972151478078807790085494679827792402977270562127957589936559220799418126490193681908584835903723586174565214825535817889506207868567139996616427178240084519597861322023796249598152864015543207771978716513940333405733559044839452245574576601151111681499539744163383372437025020813623426593509586861714863571319491856826385008338092387472460940664411859985120345764101070550646934447492136393798442456451563058500100897295341245200035720563272271769969431856208013047819524190933009799847573286177597757991209928114460874153636353044801049671267945917374579657298851922417787307463597446210352806578389215696961371129027617693360712635274511348165801968537578046385687559145812088257149669394161845329448932323277074946414668633053332168911156960853310709310342683859448438969068507155993458613291805659936697511758359189863505683675066334558204285966099054748049720342949007942779376001206744767141971155430580474335084412119464353029577264047916600114647786467186491887566649992024911650332211131201063585156864804781784574645717639874472848685123304747870945718410595492520300751349006534096484382416574090272779196196479659524574677162929699365389591288309200865064402808544037908914989594361684785544481210568562327587114072652959022381459079864251243555365783008945137566334275484380004230539417773152073505059546136232785042081437202559069750473836686858892978746323115623270826416452779317195392238982019175474045855913315773427975379189605963899786376075933553675482004332941895061129930090244272779577034014734142028509376598926380671747680918265430368065376821420472445582095173376484751639963492318281482038365721352865651006262172570969665854185142958125379148561921484831509281070342919757811727280398916675456509482986093884880175339629094712479719079851807969171717752253878260524218291358002240614270455363050613785154413549500442979583608911164350783562227245618617176639922926734969451612342517418654881650521011650818732480900620564734317176647734621304291451459815977758128733988601734721847497923654232536493525016844016048582671385267183384616108152414519151268568813722769180736900864986739415993758328611454981956953471440733593557145526341929612980291221494352906591923537975634991159095195021715893633051134162417206239930292558065530355561376046559063419926310434258833024217050660003310762348732657696154607718583812733772125534996638141428745460275944062645573036656091048641815191659650375267683617494362534502749552303570065605416883870162657597225044448444533441488787051212236708638264160280110211633508510370772324098049017175077815552257935664348122040927104458417564529919394088161378529870169781277457989427652617578842427032611964833493390616158851271736933016862405011679051128959063302459454670208590551134954548249910302272289680802766979335809950128819041088800473366266711130653470393340760293805855011617013208491640739357430918928283439756528793850401106810052987770537601879307560604553396338440499935204033761840777181241395902494132720727674647006280115899423434678395934797345653336420568142283033986351379902204503878864163043981141029948176047371391434789062179166301950299602219408691903944125890879672632062366703794754773043228985196244231690029312670208581954013454564885647439205060428483064024434255787801225964744383713804948308199546850432776948065578970222584540959672112458973288618882145672850060951062805239453205204216281993333070889270861036089088532882330631509838146732814143440306541887039345756211365000511992489741112538762184496147830540166431099588621093345576218748507667430403630787575354513798946743766897654079686084316474528244086941336883890456757227301940348670945150907393302242963295153005352043032922958125750396536547703568494579502725660326189698985663643610121927339969140899158224059379912790369917262476292740415876482230149320411721529394839148896623434439696812706568292704196584020783454961830011103182927508613416294684434122677263553939582327266890833185226101080582019510947573914747323203167558899650625896064885617355302782786031730767365003020262076455604476978285511590212581398014438002546229346628982572762742799273494254595223212235572234599838014298250331723758928616803842088740008218338343012511961322450816321946340704621049269032439921306552718289329489342662710224014062012801377982461239044021559800640693903994181383471639660640909923728134882375401602682161774588256703357541383586056369760946335809540693523296720878830254689347439249032148533392418433834832358050050944628729513051660913750466387643018887928417777354316764284131295108968240311786342581576395096407743843971953183062590724443238998307782539824926615692043623475860379848321498700451541606825871052816620340605075798932302085472843427070490719245373558759188779352658103635590696174365080434445917764855592588115873981690426854655795169602959126116595613140808718881410522847849488250014702692662053602578500299019434107547075163842227950593629383606396496103041140310991629601648624343390305619631316035081081386285701662248807327668528078042455253813132859450555245837481006426650549891945432447803603032152503670411385441202571705484908286107704180424009737966029080874222114916462268040284737625784858050407939026399957818470085900767247679924287009422443247954384610486400680971591936079788797399161429031417402243234751257915545886265671993712796854938349184754518002877003054189512789577855541882450631475219441047866950336941982269631184981106433740033845890706998200675541899760300961986897344319394957860657870645226292122204629843676859520114657662003104271987987415938540126521199228450180882517572281683404970339916456484291216931753135122183278002257568781373789759360348558811267809724767781482668332085597632886592089825945691818370693253284574586679941690501999303317344262073742359879092044536898902404432974510424598327649075214187733124283223280886206797848488469295752586643409388224107550636783560911162483307537839625635476040108284835389342350547316167456586838576465829159032686592177247906820256217729808234784320280307364127123874581883708678056228554009931221259208147232900178520222985134426511653735376614547399014004526276437612993985317734913593058434184344498880784531159038355433363354268127918595948340640866325729559458240392125544519878321080652906341343988898336651240881349924793949002028917389518113161183715806758226936120261961230137332815152684483309632333450702996018013019716472828528157256348305161064735023317257295553095460214017677711971276754604021523189757794633357836738831836288810749785782063212810687549404099815030268034032985280313173685048403902298783701811146126156773649392345510633881327983364461534462691404631358387217857415563911687953574182377773233389044625494237150155301059126433193047455862942575913394250318366474606572259693707592092289485638403555012867726731714495958193143576937865589139225061824699122549597611037696797637872441787901716263271969994440854298562109116452461448484887100971974828906598070929973572812499236034096311778372907090841143848187518621719373340050136975196587130146550252096024212850736393134531659045766247251901265250237253896305681054284671138305705536680984642305470280017907385493027810230859106923946787559497115210662402947794606426418067367911510609258863832963057364233328813585480023393131263191799437255975586815341617740668118643657836724947020539371636536860764598138194281089850452217952819061322607962712924317762264225425506752500653232576548104613443371722895620227441576645832027784037327544308250959869098627175698137826834295151316374932104494556755812105302313901100780414062848222342791715120486722025095126791092244859719661609171265223002984080023489465908999514510890673440020599715675795991124674340365818229706225517100582522004158341375550236910403415161333572991111271172441882959321427462542095491977487805357030177003440256220676442938143380124016720707680258114240077285330014097089523890634852428559048601828225474560080884052109343704185886385734692209518545609059233080324221845220743682443332734065634174482628719370641304529633962052303433221305493615130994982275974356104055779170551530731691776075536904692986290859140775092861526200964356637318964052154139517415867038981476090289182262041339597250114113487712808827161262226849348158617005101223579056541858499922910247017044106015550366193677491488716390030467386370271493149955685563725487332733557798582107801756306282044999594350515271241607087771687524900499859647572566019669562069641282063278267825330275074959678640142076773505859176273700770171659436991286196442376081214667570937451256660743591283811634287276574350988505611531777797410495764368646611834861907292157023599965139511799349704603958217492568266656905063437408173496188628727276729563807597457982627063890705940887698832585054333547187790420757314364377759540685281708331844036600888260541869874123251251002686156515614429455552648050603427274283740060975887206885775691077967347960739489891511117383151347605874333534005850404675033278918381026127641214657914309923153496808046088965705277991335619049142344996670420121516388266905863024957277851230441161150764681475958789940476374214706223705982712830545768899839978567354072843054567636862094524602000445964908438355627345074590891459592593832574726075313116126495115624042199597279616985572445775639789073260070596438889157632360131152861724072196190699209048009337427089372494100152603900154475999006724033727301987813941606859151373016860567177719394700631128887838725068365406409122167057208958287531900765925914222084725564981320439842438642267787444906384292408538092436942692481977721701767171557388500741900416407533878779543920975513559014197374482023287508774467977698501800808792074493612656530006597703116197408177121902004552533002146495281235989402449470050492209711373562978883976061492094404984856826063993519715240034353355393854534175460931571373037029613020179271652501595908662910158645164002529754852419759856258253258053888001454097847830225806477369699928135343771672035594906496161361420419437395750146472500242769178261121856577515464722907070322871105436764193070631484645095886986582869757678576879566914703297477628537248181230872890781049016704476520724662713179928396316490182300230924525443860887224626290398939431471922634401856759665089742034317706779518824794555851298383360939479408257308054759514680120644208400729777614075412168863204605997239737600303719709861480941443788481149642891581640690335859067272871586779389310657174253809649152175920873848930027613606708392683010268952206838891931209910580076918097576029140432846468319316725664650558919184628393611947491735922157903544449332352419262732832944862112580126908270920206425760381207789768888643652041254825656216811337662382953331219374016687105282721193665865871200927998313542182997385658326665259211694238624312374817958698255069203495692439324549797283812907296577921523898601578880568076545642256960932200758156736053341669178379177463437019192064158686174952295780842403387125839255674977116126058022724502189378074207184524615547070941811218923413151979036458971119244520223079656619290345068549235621611160636474739737411608785628581752614814783213626363970821858927577993634996300332438080400916708268139876275551108667367735190766750208256567031914395898920503824760502989981036972968439671331916971883378140365708257602178821870537800569332401529175810653827727122583507559209624591523291743145541970942902337521140356979223110416915980808950369487994316773147115596223580188990865330997618846685406990670235160738777198383250234182145253290128036282522985152798704631049417341402738547967460708064084899053514959598260236810169082377572603461805679815428564809613665922651484463141363923577861905384119356489891485137974508234119368320414094720130458553558416292022214358888172261151685459080540083808047876206060832252445953666216042559125146008046470237347254519133182056376224089979992239154494322793786265211285099956029617355783837928083494766751572305782214456440562209888097773378761376676744899312554542450794283085778827449434776902293966557408263789762594678918994663430263989531480527083239080888970663829201375860514342260278792559546965177355294847567012660504572399582114984570298557640685612449162520471506619564808391035207241942086299621710773225766410441077395241633054733683218104808418205997673284590274387982332239289334188352451561915636905763166350949923300762376461634183511902497421798030412237364360170126341716297546423764602309554640365895473031210890481186909901175918455654212086312837243120700607522418760627557916966336694368258082502545029736020121261458043491865304729870932498655794700712148262761084101800761513422482737883794617162304739441327015133186875241765523362770077722215329286480751594552614552824195387666638203891275669903243146043772255798274191131902005114808416107675522335103136396212999474019101762796342119996454332374579551230453025380813566494959830871587304338570255891485791667842239309149418467588457256808557530904107164793053708574855500822118624417690347542199330753562014714719996473461599772174680353431270905330922486478302491482044325062554936936484184696981865766789095037025599978069025751688342269213630732589989825464784479263964250360024694745586686894778109818371270713152742377419730771119538323501608148864420321387597237640358570471507052714072900415700596898227609337755267355647442861545907400201911336893406285304837827501106433680839701954988298388866255069746202877861552266503511294995173571808074751243948720998109895045583067984388702345394769104837785755318482941661303123798129708237198822171770828246734516209509741821974996855602949062459044425412101308795402755874633501223880335895636794774696234828983215225191165591131633331051101870195390771291035921621001744696129372352192785873146744764570733755233842858169228628784938810739466991602272472478494922113785609624496641716741220733431773378330734525869361053158501848991530299864529594954719976525526841498451385443675133289519812273854993063854061469601090218697729232504069887943372725467682200759062540380179467287121032029220313182772346960063855206036360240997785071516142172871712663772362339911101821499837036842425535848743693282706603862946271697798947881139562135522235474722316060829968147550062528090327227422780640760339149191702533173115365001910465707652300636366583158238146972629613520192760260718378264022749553176475977958376876123834963081857318219171383425679422555665362256890181031775831344742655143018669796439749907796671033467562461816819537584819014060921795445885342372438854724448565813027183133544484781407242516644540965608421042194281330722381730393513942693099549373469543136715207809812478784938204968635740098672599658554351932206701856902589345925902415768160067860315514560330990433056517725397305628828345750087042407724239581292232435386841010159612533609767170456037778906446507947732751193515233429210096868089278133905973532208781366850520271127447448755113814186324536646780290095608470890191438593563564394547515913129940295303623973710512256196508132058387514129190209119521563288001674163082273190653294851196774734239949495119410816168074653856274879496039676783777476605718810616695490445775265795942850044396844052773191640350482949361351570900542142626548613029687178101779944861511964699923085973671132401730510244778576759506502372682755506628233075579949557948510275641657982165800328464221685865989414969971371058820819798038252241673748500367944542588713697545026703499169102895846224455823017424410606848774997227589064492929861014759336491422900790321925754270949302118011743851286808462446007432072367547608060087820703729422365759601489596453434057171567650499003598658333898741256148502567425501359393922888370021953678026999350553477251718725724590414362916991543345298517324817603174371328482856934330729061292447343905485067398465263128306003613494823757722289039345161867991976801126106926159019584681668758708528708625967849698441361068970190232244166221994770158219662617088244708794443772283938762998125086504145001324740339727995706834828795367528418957770816946667722793006922438605949425941176972469167388330869646302562013654562631924824744438337075757566625967149047929390108774256449009699662170361886113815283691806870160025040355934098427509712051254374281783979385894077667967846967024532759197952527230557182792424228184448560351002218574792596414631553777072916061424662024800700935245932899576634659349903176866123661633610297523172590723188715167791750315779896956178967025114819715205306783487229760919947704299535157262697833077723821824007547402782219619411528341803570505951734150863151021795506968814338126456197567124879721238826048559807016413862585163750788718846785632137820480279784703448059065520162517249540595885892130293352118989171958869142655394431106622543853137838634853954812920445525238246070369408445363255225505000563067138495288287484287356447514406777322839929815701715451948241816974796460610990560591996343500261385865857919702019420608179528504626747133897997285628653261565650205341959901136657062559324776830169953111364573257641072239068373102736740299140846904663246095231152770624805250226329441437139166453533427011933616751519191329869234491858547714920682598116412517835214819256595197883785040199735933314276065243171180374289184499050855973147614523159958354258830867318932658915280119111963248282670621084153222977977129298688266199839375277928837877213722738487398390480409132285082473276850837153354690564343788710750199893929753309114951043687569919544058970242718900265919405009158130334159172482922753831858658915961617540201963613817013399909047511524986685290872763121935368452630506869402067770307988173897096462330012754259131849373794828355702499862211471254411008425450956786390632489980127675738159072662472160837004747434059397583742324762074978182292121772056111887035001632076771098878275390268643394255187519707068237871870626178677145452284841306788734130324766858477351900381866704320759978973222481547773111652858275306957877327702003933409054733540792015459110296833591579528349288951186936125869412541307527299540359508068429663487082185264032594303541404581269169223922064723578303509442475401759437599653232533469558202027898842411244992305576184090141551398352330689548817662131888883228854090481271078293397797630848178077604619176045539007031050194968049647002030184487303781591206866992156932106352117345821159201363847251410141484562869362513026582356987702047492729205449358301888446123522779131564703231577662713853091376829414520432745208749988911267602474262205624836018521649254481952926462279096980940145473420843091622490988426084596946080114411067458664162709921239856089420385089296696223181865430293662909524131837897786277305329326301747769250257310255611974576776420199507360782016522943936330445840509015417833373010190375082676036038149670667040481639330360314021363992921411710714784447347213489742677836456620526435858716509502622978041812841945707470665941931379044920196282285688826549198549832751009905259922964932768628253025314881782739208576310604701475714514665054228697425446335406407871328451252824714436553479244275733712174251979937634521422628540971602735223335157908893313464244348781730717318123186210348756997171851992107735950615785102958582995066536648576834884826909094596820503279913679392015766769148707875171817241834403091627690887598926315024608105289399993845594116761153031096383746143477491908741300820004549319262284607437263430722178043580740249512396359528042283208169916033288639395943797746725794591565214002943338805810845033477330614640955646869921970226194511774572778717555321889474558201313622287466864593708338088729626138346723148010146064149039678342895677231129070724911103285056908696382629816217936731140750214780952337598316980612604482434010042011302024636180152927980182956242473310674759550132422593277864791916397282908810554338608348485329590236259341508518722225881155161539006254280640822605889891281493414295463517428402371829010697763249916130889584455778203776371374064730795697431679455756810573666373485408952268618206495380960055794419529923477156380194919111789884049717933939954202476293169946437847665874725470487119595634859926030726081508089618918007296182421202372451597606083198537641111350964854846702198701140253364362904786980390261031344242775774320847698632564329613492266340756349504275559009504022846377691143251868746366727545048273892801526296309739170528362759354720769721321309775511500931341481196951182089869441776193801158062644990005847964202060602567545132018519181650446196712718664546004367879608321154814754311973562662385301848670619057456006465827955150432205182653881258198813839157723235079980642276930816205723308172358649088821996779962839181359334899441390367195776568258174393262615158745194460868244980000955659530950008677492844503482106488311377403759655648634452798173602563831234463020003482131348064905363789942594855074469823973553803671498937379450265289909567508087728728908450574180467319175108313250778576131325782971537845480855677051075474281369571022052587310274087704089023310793634511307128527650630580640389887437422605972974450344229550504224236588457392417149835293511246171943477919368856993640015187506352856818716952538286257578480877470695805575464273049109062428148180106041267627464601507902543424037588856432558450055972165884016723265026134075816149263360164338557895458029830934400616322972914058414612257889247491062924783011470317631866438369718837073875705011581937656730573056734598851560209692385184543503921562832987209335201425556669370519022529559954913168233165931873235259970068212987372082805860754740240488121328138113048565093864463724414614223456184315947985563433230808926747380243762476498476337858356153076678075797088726940830743182071957702451339736305957789796196093910044219419563903449794646028131446863387434098512665629445674805162536223518516749213750661062119897053191343634298159474735962339972171883160779545967504425851618115874047429070846898951466147570795734730355452459918285363831271474599155029979274781114105413848006094391089034048339836875236582018781346935669202923731913818086475083472780874284884449261650768108701693141195709667172756011654363080761223010430515015978250039363689481504627252985790050922590840306079158115555539108398586942263151187989673419017187384187756743811776670308088891272348910220890886868118164564498348817695535415273462799789096570839203812432437917996502832410644580616196465306969353301724976209423077416666863013173902429282222861654867597490232096748748948643753475635303235998234934674180079257710179429938455091341629155596667826349702438261793159419871823294759060036175333883147485343954763307221547657837770458018161664337538149317592664014423292962212279830228316825834797385359717282180726725213709251755766231330773889811792572401125407250663670328885172693028229527626988751322317280299784336701756190937947309562173601099890750984034827396659974387663727322490406652693178270894596816583370205211043905403687249619666805174143241455729325677570611468978355534933494724739229049861270754111519636628718259080264975259564717038486556495556780183657839502108527395432248810366656593542573309729123665861797735369418740255820553728130092033533683673044297597436187778912045235967519555114742109009236236611353258803278098839760130137027375708043350744872328639910051406883966656367017374437189229687986764786324414975867258690439090758920629412212282250925546898169983880580364411490655157277426153341313152965970910928548341156899935059099613488582694260880833974688591718507274403767011413513919209932370321282569462826472478603826246757536326573338524269454342159895802977568394261032993597433372406484797830750240544639544212679729258648114257858713477970353995865185025672382359233702694994538043324672236127306599186896357158395264088085068852434607718880502725579523935632610547834020069204938487292608527851293194995381212009232008639862180185630231518266025839953734987127851881820854681888216977771515058064838756621239533449215492734539577087417331857316069446248566951775978055704545994712079655570840300597489530308918863778822999132396806942755381723238925914935636244552552920149693423438858505460339063309182709877489206130723966126247521302926644242494175325834171850835360118331421862719582927138688379032778866058525818460684539635004852987779107443068115573875079797137319757232898231086665970054056831223607735846041414906792005636988980510243101507060901916886526347473983675188717005760026242511903264828270445876450778867297398290910694247446113039154580597402593872118764661698256323826402429099017943313954037250218316032246522265008095799727870562054379168552189717988326064225446594317643700564605177597098521716807165563876009060348302072791754335006489874571754579002407611393532832117369140674057198423251677488965868903447979644719694829484831893169364894343928628624806818735884726201352040901432416491365899200141986413024725133358988269484068565346257034956731465485211752025167051492027992360259664584464856074584189297079434713342330883352018699568331421570356838534178337979474683981121190430508819001065476980673932009720778766282857380015132201671497433963492243470606841095448279054984245132501908762538249900911065691606700239218541089526095383212090346799647457108687531022865094747231004277827161283308146758258179695977260066608091327675459866451961423519920452416306037440491189325608450345198571723743089935289978727960535994284471332610668310071214700122361782503671646849233827929162587359575295008926474128793591930123813542862014869561960154797832731356341236064529416233516489069125539951702971930730043556772840206773597943311509275347849252714290759387116374052053925942823157621269972180579112542290774693233037568799234239980315602126267768639425053001916955698216562923470944760526531126096359077271640191116615714369378497700152045317551393060663070202501463682522575398441740247738149963454140182411420653314491618039631908222754394128446323752770212427647350005600079519987103964478542553340062258044696541189529247882214088532456586559042677030112760985048822107270604582647837079910860063908273682224876066219125074010658605196051293793718436448857044885384573316784561294728893581317487610544279884337898151016719483348493480519124088992932997969690217267364156447171680135549801500591849240713542495963762471397369916336611886505759344758606915082789709611502736909790666334649527618025727100717161656230366956916280089541741458473931302780529699075387076573259332156916926656231057194135639770459828479378052070500051253843240610069198944006298676324740169741368861484271620979838827052697630371046077345513155493660336187478808422546594759307042044003071514983383535160175411352275068511020703351643062615562831528912168404316379743440998275179930067271755659734151552245751651940886660632163260702206384530255570154031907636389687322017525689904381922800740956438629397378523622268356137358380712275248500804465900378619871947863094771356924191762791985901095133608713062496158618807393365398634299182019861922633680201967611269178617011044323627541731447069126262573607520097719583397343550077051337804987003694787496647338721100152857902757390381566801927258061440601258133534705454530475250386321942073065917072538494763146962086818620463626177966951138973243474209815499603246357467689474623610457085501268915418236513773740824651227125192542130339901709010933008384045814944499439677603792073178249088120825155147855462051722154253951639935926509892478586399977729465011021696055261112630876747968754387306650936677854840209428357075576510227098814278855666002126259087936407067989268675512724149102028448009256532188348213700426688023392491009743775036470532169242819499966873051805450217511302809240775000219822013745479352795196761872803610635731749181576745367397066729103817975795843684814640086379875735359468522513835957701435322689732320550779130285267119354780578653493490234602812253281748756855892790758459777737860619524989818590238316783465239936762897587059438586267656643851081341918836491448338647629056432176355627834682600266164657555994777450254451482968239299581504276441909265729433682049040684653071541577086733459041832988579504432373618534274495736193715884985485146674628117868620736176344228576373688971360794296409183441728999536430608399824931977161554437487450292419713914795923265817175555470982000287334853609157071546946666478326930158619394185608243931701869827146974981257149477927516455817093143461927836305284652330224445133645591082118125930533044340846016932932724601823975638303629895329022901645746049997591537049735363338088902866931644162808520453677616088461448624325187810089337374542259259878552962841965693946640409739581128603004884067147338683210804930679530659900849454535564445244769334403032040617885359282593427574576308254492255968267564348250351379838507391498330587868564849294160304265194002132754316212833185757093868909709422932932999366045563290708231398291487624973256972035306728056136560108182231892463260601968132286421509678783709854031827570589421880885378050567085785155575468423233067608409331627159562719006460565649046866582042675912849176293569034369192198617782669234247656005204979073945368467022712351881510052794302837970775234524602293884568731063210791455887680895138412257876527350394206014871720069664389151315233169406212089197519524425253434905220464881924101281803002205258899722201698372674644336893548922580881475253291275975551391018570119107539429696442616674810557761633702041242236432474149264275998513135636286846917956332090738602338496405573903602609206078746450637725961763015036069277709618428506041445440568407258589785379976580707367290702764686825933315283239093989825002174886465023498442745109469510428173389261604069150894189059587962690513089764168249275700794636062991558393789093812653761046820811090989239176499135526150954544304932355721161913969262728960330379620116025569347109093870521378858801085104101912814388399895210172408477404140136381352096914078577706392893789124458954575356072733241005624858829281490070429934026992947721576216999551722183613393783801873537478027113196106641153548763700326244069837761256698706819474872099794548785920468000330751311793261763441083705039809947975219500780093796407374845505804698005196382702606117821639901517186612041074941723653420148876890555038148067773880276851141700230941747298678313692298173665751357419539779242961648854124853034779618625388425197678950181339638347365325748673717776722210028070057926681256568020154424620933542996182952343729597559201094305578896682237185064629565882821422280849490430576242645974161544632601717449038487874580104302945593980198139542881765709842819636799702763494358200868989398037961541093088837529922576057448946468309583442355979345477574446345017584307465296802866654312917320310770018119422730397594838809829285235014082816575115494686589276526576673968201337369327724957003588202288503843784646696386682240925207715956730549600790966191530925567586127608659967452481243602938271129995889648212923489619096275169104457241532283063215162764315990090412141305259645284504991068437059129705798424924927461543095182419997249520930089456259411752062565620863856646690784677088392825986274831806607981498185233485134196234701083603216360460633281642295924270338183487418268129564741309942434227448473825428961722605903452323822811033378588267512621839031908027784535152319878513899045138882806765082711174725081972616277301291113928707244871967821663752433898295819075523314960348147946156948259355183822542516097628500403688126497161237888316668388755473570567338282103163973371386196228500623461629830058365649044576517583309166500502985854740618104802972694202585724613290456889338053347025516700001798689170131349056503020593050560146256814581741609813606654019978983284036093322923032392599979189450756828238670397088769876175887275908470563991352084957984779047255216443485233472819873278456420006938625394004497256098735962584333490167329226159273369679947962417644888384523362079211682749865867149989238227534020532687705020796137946382417584033180620006728589024290547547659843012304684550158159855962818854340557934291987800313469569993015668531567843095456519212824690037210758732056318089251784133715219292476236994918748714328869808922015266850292953659118496835496234840674518958014871513934709098973254893813396707905112313746874551508539875353538275509815213813228559535431783099232706294649563763174497743899242789811548992905615291331886560383978803055225063400977483322476547986374916023129605186104859110496842047494495853677426330132893553879381458735122164618093892369651333826021573873930664842506120261226828106565277194634850094743950448733377170763397545925846051527197429228673492209993495937713449963039924973247005450814125945847609458123520235579294181680407596697187636694647133567749009650793494160330238702389061462219965468656434963187897748485265464051253958095336002103768692305038180556310158458607711249920955744296780164575952612095230431284858479755683616999551080748829092776397194572615157300158399500645257809477763913879880371812927541168261187057794807203988210222286214097547053671935910378412123502861079871357141871962586137207345383090020014375281461158326278592829516920340856084590899290294390925501137326895713247030729353072300179203040324620227729234604217003832409172497137131638429754448756254071843358703317553115424469356158573169628546626577851137619371033122502324903862113177308046892910211405099799069298011487130716971331857139464233280601124537854538298423959041034797465944965793206422177154320777157645531234904705733396412641892277099829449582840173392874928301318729826983334698157496556246096497665914128182667265930123081950991873296526053574626799320452456696331149175044436983316272689056099940354871087532705673318911097750458201843712027266000035316365952283178360103110701107312821886172189297740731048218453901952513875524333082385268179323337634496330275105072136163966174310062808595090330540717454642781422075855137057944822789591624005453245302008145770733980971283135924649481688760375438168996378165919644169728995440696554615727451631822734648964743582658752186721986265362917718809502275229948487348226618221879973392004708801830951851083786913160223637914619592195587689578018229960067255247823890072129213833866912790647361498579893993035884007100969702195993855976707671036806456966356781108658329598158463148787191542357818949486955851831153458453491587523481808195981547128480419900323307271627411776898657039436713229429715524002663821417112309578216397384334660915847871988385315800735328612824520187569459164504206647732972274230333613304270995530260978368361960898110009584309427019264399301491793909565854323620149294207017538676237340730004579001038940364816240327580292847946286435313172679271034838375183824208449909393282643779226795225382838123080583277812670208900669599066023470303390678542225924611247167494705667534232700341292086112355693555646498848191564359905281086184076010942497334635659871958497824618165442816455777750748022421782780907959363616237090087214857424629745110468656189614565600981627959462803746719568332162262900086824304313851084245670841365940260449407918497843507142129588107626508933001217454746012358122574553515771450658221974236814715118459717197640127798888853757325498572614212445920613366535333799549325229915927159451936754810924635966225377939865740555151734271363324911190646537695829240133230534405332287826648820357355328018670553791924794698203000534744164456191580126232514070881163015087240818835055920307497766296041047685518884436208773596431774602095203341853715112839141936587206040005923380844928596702190668520181070226409061409804434643258787602733296464827174135112156277742600051656828195632546593874768722257346852007689267549163048543982958851641518183961047050757140069058900595801630939784714618409075093654998581364160000399358238504081538781364154803676989277226641805957417949798853868878045047270239079341110339388482358310907655161193224159405204504201391371439651048323860111125085839512942023557654018871393004485997436963746638127299045816021151384902795199757673310518296323334963157677329384531596857546683825924149340485891871031159723687411339626322494853898728551968369309194381906834791240841049053570593109942601894872674566842932565979753034672204399870442099323649537129709221211644160416969562490027176997495962228681562823434313336511678189398557414724845083493677036974271442834113975443348760281240725212473684310509772335816382858734094731929405600156360715674562468751317180027810664637782674500088034660848166252252308598298447838417379865577395596653121719427483826924896725857830280740999519004414904095282541803088733578800919821481404508438935499624699873388181246779193471802361714514697563764917319980410092600653910118880732943521107136780566759228182894081040881894041376547997822284471551938879278795353132004763390013380716649594088070078875430535658353818319533054652371159279388081496141221665670651260400275334086947908557625505806185015679896525790713000565900340480329818535844467994988527236310284839610036848743804000312031208940495994492018487676526502730385783333266063631863426050024528025652071470635747356666172412656853044239719594906056042177897722185898039528100689911379634577638777809253106379228551391180418060290706022879505662620509336312684813798796403108666732371430258591148147862408171057974856288053766816221211469720928600284935668348475195276569870651605974782379263643114123684227492404836582755499004112241268167562270926595802567695909227261555166830253318491988180765210921763727414582735369232221735299230559107557202361381814438764836000655108204521381923728091328023799382049657378611029130085299394818377199207071094083009558602090126306571693675910032014723951845633321933930065706665413799668557636653126911070331301575458543271220227075564855428606763758905009996942203179431080841944885642368759842831840627001388075301832784448976037295284351210351085543952820402223698096616613444659316556408481627678415310443965945790071104353705115087870209853760446969764844787663413583139796873554969027634255026098794639368052231372652335123704402091480790854691761854298203099241044200574560292402734897857547048110061309094047476938260138054541779918313711528642375207762525349488614368108113175265616459855426160040587322948842481729952644949023141147749290387093415291441855177029692564652392474223829514467045442364334605195018070686588959820194100221340066000730623672499283202932431817287363968761853903237027086598925662673350622276094584502349824087199326768166299198814312073183769873698253370380707194889046441364681598967861744242486921704178451312840771215150844559056141200710397126107901975064751963012909332748038840488691792786902569436439544878626323622976738935747896498868342159675834621577956584101413622160617072342597614967275162992608971962790018472755377927214962743698019591728367164948507964081195385883215634002202439124158145688153282997057217354486521457119851141813899083761101410075842343068585536509615007366399771589216516782142109388863464650301777369516510959496196530768556301154725362830073403908718622079875233845537520371190937649592704404901963816595759768270424197793925747628423860309258785667939807458616035915771495715534942790350622647064718891772246437541556048744727799601514669755536022720567117082117319413092063639925460100210162219067581049317364158671531622048604614164601624827175517565780127771758082264748685437444838004912568461283154650080330525897917448123626740854224141830622124846854988764833752160792297057286977434790133931465647710969715589426800724077867043311314677162897501385580310593008256038266698937817012489586903234763269578245470019849324551027456955401891149354067626806796474296337907705407785672915295054645040952093080239753212476407739128180110082947215573546194632375033926811128054076124771225924428118658853352450268105453445287942931291293742801862938169867503351679757786227332115206446684620305087540976248873349836579601471123760993297479317571221099263354346818407514396788374137941906726606374628732922651523871485288308305699709113564783479593651425043459767966033625210045964684316508310252186537008775379981783423853291252814402286490447278971090244029619233279547049593783034606482097851515280810173623443317493848214241812872042187737681515942807273710822425011960290959117301710237197474207768037044938385183778673474084166382680031268847665773372851692592646521960530738541164272120702876783516348719799427355704387815829049581856095959913785480982983990926622631905785837333557559373623277710403908880150139665293460562440078110614896795471012068135466201998932054017765543169751672249371918327534855909553343252175543400975141089421969355509248910906666157410880038823751709306725688420058201330098298577032456591595423668087699384003032209761785114073238095253472040044928614619477856977567544618558857563632253112362184541368226292948839996393389615604874120722909789701555228665671836823892194084720774034925346860389369104644205348390219130369267521741372564466225703602098978869791177244195258576451671003336330485509018714411208967223525455556180340937100123893717083972670835360339949750490621069594210569336753097376308076463276433719055188726789322973816709285392735383392125624285146972618708150263757302911304835885306805135889545339325412641752379312063808083739076482793670054097155657384424093440697442771185719730216110079515463714539139205536443392546509882480895479715320966094996557745673241931344046632523141829791597460121623335881503598244269125979638687400792080844198547532222688656692229990461627274734627364333793965270378001628231832827415459267335965338746561502468193738289728893936879784143936085202044191128778912681486094400802539787023634303559876549238356362069164952681340022315005861962301702348960512348463931574778137657102029204664946248379182428478181729652500390171277916322686332900975896312242114454547842939932647513657397053965510592210734790785532278174468737950621234667432076608155236354542068460111890154112908811090051956477448922518451580380080012036910878917107295891352837342470493296778527836629596512965235521749198069638902123253434705671190268376262921969983817150872718284100783198428352818541978929216304064238161547377742733465082966116159437864079689172047320661188594012681086767221774602189212492913405958134481107771840218454592545086129417297502901599209519852944666360084172386476181025793417950144203244406477646822998841132318311351050037266690139465860377316705592185249218872285097470099261277159830565812834635644026496329820055073857947386259785096301247158748209070991303250422823474992262368185963676081921725745781942933966771475118426210443642939694229561255215569014570834771298344833804767023524414555113683404097165034150981426441086540082629724506549312361269218136039887795970382651702154690210647075150914823862116271657061556110676182844258721233729730817869745878083312482010328422039228725830347766897939393604174429342723198929108498322637901218592845353695563481691396114915607503318806046122554757991348633292582890393601569500603315379499086981478563033037859813096291663555648763767631419710481159755916893498515690332580579198542746489926054719643355257529017581858937050618699073822849015285324461625196957194493521473040383683606142601358065107836163406583844753936628909706761161852579823869367153027366649182304022418527772696132715285027385926432627715487495626652301518029199116651020829480704507773019607271838078072751532629676072514832791036447385251361937261825321884642488256576899778659382503343736745493968964663669710459586713678186878393869086071072348082611476076502129670268122276611877798720473662093739082079271068032440011248262424903668586152228598315521707412940141662490284452825575685391501070114241294739674888388092673989917100762095242110626038810180054645063762549031516450872919815912996855049514232122909008383870576179024669860632301065750509810812371698060780197677318171372668468163496887006055746257464632632059998969468201262833678671552501445272335176213195572445943157706644942224921474212069010527500172486831384184165374893462835438575748276755718424385793901638943191249772732307080963511021682066854456281583808487452787132006433745823097577297641403415724250123970840800714148721650544059919485017655432145820862566136584395258425127046439243577556816361894970136718323117204947133687147363611296615433441932424786943627632246661170942605622866492491872244713921151086490114944429044940153133772692956979591438645927256639811377122154953135023283145876413622407014133059089081957621130351660504292420050934021776410553679621767942661333734870528465645548088708005535792196321238330201872098133389738050012487723081222969230061237342655921860953399716276544019389950267236101104727503732692743046778726455271364192445069384768881928361472548003966463783492578768925184324327373328369706521531547712616988271814347685739892606155783292924488726587782359059576046883634720978316537750182765772550810818573314010988855305448552389733687155295377534782204678889850528968034567525248670603464307398727709317267563618437290068926172938195097862158124020007662751151427324057865191228334024914097912582467949899609577238201315733846942791183927241245724403998538626382912694101727095056471579410242939379164223970793188327111012876866571244846284329074732464359339801197115151855115914381662657573075436282765333728238449767688574044744267724105216007590648254891929105309835918568619729451179558650769272903781602377796216296820051737079813190448094360462887200779273709796621308629590321434408583260602814326870323606804402110751298260373355144677209378156979064954428780667584585083066843224690059790519462213518139869319352468800380900911548560895719985642336463680836916568180165147344077102523405813661941990997703715116966630199255158372793591605668185943030445672843337352294506468175929214637708042828890156926591311662072279903449361250065176150594579628715621225975714902275221139898262561914103106371342767484919744313926271169588249079916985854804393148866093201035313188797790376417329656230888041392953519077921014221592476143531435075239508434939369501300381000647722169472430976362785472000377496582448658051925679630966155483221777146994852608683138158786399601807926093250434543393735712719189085490039812161874657441114737743557863694742643914952517647387508206044897456349561758392912924274686202380384750603429813521171475043588167422463465114865807458541975774264876381725042800944555268457177015729095895359279501805299726844145550904656434899611925833578590635919121251662082078948805253215313098494527441943457741729055713145205065197468858156779458796741676877297465596154516226175181556594509785484161091761505245794494270033054316503582146795885838156610054713761758680601336724887525047983316147541424322376332550475397895718648836958324714803378030863469802266502020636804670847475316351811495236345906104182227562626059219338152481528512963321158714500305316426106406426137304505872752834050293745935433457153377783381638628007915519182706116465450672914726359643063617062372527445251681382429207899852050917944015915942518343078409764252340518512828925060020135753877610114856532207973739821634169193329431611662687914855728618195322076396523103867729368629301526627182623041991115854729202071623314102079844306480577736513278059329532616299461676535978422255110452339921647660420544907277538462244696560648272008716512569624088632982843321594721747997207901893409355287048274930923661903971090503430375121857981580025397979029391335525850831825925980190147949865273183702535855038292421480316010746697276134585516930056254881893748458680534935807300140309049564023470117589832222411545527098252685046741598627455282632063116021141319929692434656547079942086906556531959532331086968093461664397487830773563021870394609597744095543148456898013108707419907801630093183035751358181792413062982978785531797974209401554220060063805523832047277080000207065788060449972483957895911519614652590760356867811269938052026661045251674084550280157926313978401846176694571253835104574879674977185729289934187820203903844896016951098911042964544770331570290273387873395239873420204850978663148564347452155729327496921904752664835194339122616972116325262382417028682167607359321335902886024808027198944038824064255960526565700976150945542083298628653106146596745076367575294107093596999303614913807592160855479301250975899086196475250971777459676990191085236737425422011536248881934602719023688765916695275531770735428886975836949447509418111632820365691567474821129288202713106353603963251921115596755681312048106281851960097013115062882156404744003715487953272335215066985032700669033813587201890913521073899277101283238895422534510476531370320309859975440329902688736949622037762870503282032742899326433622381252621493111847091027597881894415597083918678802481404582863340109568455784217779731969837325485209562194757547061218690599292595534163349663193536626538303943918225782469131550073758160680028023699074640115059095972281810005021995643907127979771013215257284842357798328815230107194293839885752184508176799784563591052657478200309635083738695090732078115873735941599418364850280785905134937769372164221536887615349752766713200742773802651994386871253083045933230299022065230924591381627536903451393876208430602858643508418548656575694468675472276436416772620896237732235269803201749218611814572251108186498516894285801573418913974419720129416747222419465549793062659927162084565111572294603468544399311063939017176461561773214460809546816600078133347555336103132049716612936124482656044738394234885761767860853430046263279259373407787546976594705936043052157148855796272074999897846514251105033876477333655133527375079149668341782406059395074685726894507212512234038334876212537929329821501282536082391473909116667967810702336408778133264439295244365335804550275217751700462090471312477025177233025090864428989194067418203327096166703783197674329620718151085734360576152068251813617591879850225197977236110845150750411228145722482056055582969685482071929893417738967704978382625971425142864777053914191000467142335117340724670713803170738201888861434681290104272386261048991811359649037500148895460242121468468215154599079273047841969837889437419395082042162886679792071940338695952797899799848901240010853051505805484479354013081356557752660464946905996911190913089110120210885700291111680692682962207103058783794856399160866168377511546105849532058979616887791194365109234014392283952227492652781093213328762167370572624513718133047786057455950505311801722817034402040767210300329508856296257621099161118042128294670164246589285082038446261526284677903256710875852918125520270399005647960263387358382086690944508726254599946307977608680263243205915582605441453542848623432098933399323862230672785891729220657155938821620070321887784100552654658380270158113301033045586797951198246551902704341971743249499081420676935408425991730557815911338316273166682524892532005158355106591563344157217084785964950997292965200711887466598009988195041817615217558007427336868747095511287994677174078745039040069416976342728189989208621592381835532735027329711184137813001810279544650677783416487613684643726651649976250430150433292254750077948087821209533936895023559414520075862086359575195566732565367508743331403570530379618148099290728166310334508620404010838557717640131938964345873707709056210860911300639569493103389623395508018977685789818537853368043425353892186036889279602842245571487366842412254590189806381634483511715831398261325400253810068379889470831666507917790652445917912033785615536402453866803295249341159709961919890055183276458806143615410353138378679390104628010706073359299021991530424473307677662122110158611172020945896274770951275023649919617701730137030848994796032890405097399282616734139494205864119848609974269617281347462578735403532336962804547786104244909038163934352681195195893836540693064378058805394585962892461082172405624779753292332975118415285950534735775661128547598699829272021193678256231729358952111340698204900801899669158080918051040892838542329406744905321154650354422129665008501679643743726396950698141007117977297269274307567450080456908702080399170053658384459434992735731166656802320318938322848430432245370267827541003073843517218641076902609208076491721210777289269361706834876191335953220125972138738131752094118664192313384455534702021687808182458731007181750795504907834378210147854926221349055532838189874378697774655437164670364924593956506707206791792411844052403663256744383720607807960579593422039640060445054017096459765217276790795699024954989731722161276718080222207997780517551189339602581421813507182831616109789977844360090542936505304092436717026623143778963760529400921730606131468408811746327753437969809316737224887390488172794817599595174603479961161535391556267929816312587689108207407993211034738492325236447288781404860195874680089417589835138086887378871586656428185341737278642730454284772168613976232453545505421512814234130714696816404458400339486700682919826511451176237213927275749024039443328811671143521617888724927026658457406194133242511560961107095611201968122926307105084866100366998930002087298741853286693588272448701626088462769125644927226841661680860334288966561143782398633015194000144433869874354278022877856499130283957494996016635678396660765503798566943252992964216381135811649460316430956924047122284009256671302419953733058988905391798348073127739600122657559542057235166692837723567351038765488047167210259245858922854892757332159441437772897485320319270889417693742489754468748290646904682854732285602821240285700999425416755869352839589324346660223287441796447276572506811107452754747414448421436947029852456901003229660796831431773820986159058096247523378248362930797439809097197513281405957589323726282063327251479691461668134995516599854449358229315857235522086178223492703623104077845806019755084879277649102333288141586737074019007563327064444963979975385022713122095404720344655613696077508607437992445605151573196283810623071380944091737334344338436596672570470206399539564689766689172405845919746330348824773360180903954606079337021497149348427886191417601936441097797346603722704769516496135673324694972808622952789929067047243970741724171693379704548328582573955492475661282445162657541823183274505927644095708353435904369607669134333094750967155698583105194762949015211115871350154590559447883017037078211472199902077150510879594170815408937527354382199914159880169017802538002610723713648667972161615520315284741661681551177085757266643487622339575033548237994940163858551858791416036535842150342154168325197296827680630147654829269448964323110600048929185904775562539432938063521675504365943355385018345187076052382262790655954002654529802717720664692083251639025420124404606670981741198827527253505796481027387541817707561491009347290438636405164185431264046286777099039652839716893760443966899080646038070488754630200697217130317971933674937083327710439966768922928396013124023198985181005433728028882387908379008149779770638053809462113681857675934850393509290784910810783139160033506425980467145734127377901859437201893872966898322060141602070738787493046760480607698529349083759604091940797149814283941746231440223633095005360178335528882075575266956583698049192897437624813601331222146476145181842668285956615947490822349918608772236170341355424239143660273772548395591085317654184967197652396024161862827923984069733787528254426530579197990824884416622373648726927042063714798033394724232244574519363728852877049543783173980154971695200193253494840770340595853948187983904246767167660324906680971425385683227270487197671853677780969248075878903875752982144744333839503518411380256603568349205145272364288193780005974792918322633029804659052393982628843759168184747594974315024701747600776463626105579699719972822684527081132453286073713140943110737169747418783069552835334100457436686736116646688716437756932868833413995752103356296046010361295176687145201892904884214733188232656523555785940075359211801126206833637873251404324743540844926339728819237355569167735666287625267886731662022145067994874714984001969573316148617393110416033285811250409771726685732884482841745425586952716717091922134418382999354960079476119275496408521067543921239125692558606140528598733934486919356817023102152754607824440372180937312687283018745148494634068836310335894259842096341367457810309972026397720880019908651431845264396064784738813864600948218978584306212409577588703685344554354206531220998848091575571951147847206188446249546340701665670717413863154328941928038103336391885469518596956980731648823374293622569862241795325589158359661640904877732015856928257093080262951780211645209810390687118775642478642403782065866724457919813395256489734703591220463041538774210800715624249427604995204510165759115967892478781053964636705750381909757087677690708887034548997829660201789314784340757181795202903863369005939908106395805901805471552704973157375189712915006387440496678275544566072339170142906171704854524799286957057036161849505543989619487005912354503713063174658128541593113200626579299600710339788331082350977064192120174752805997309503487009355728739243361892017413548821767236877835801803245893460361149193148277818345663287672936345567098776667211134559405186015845342413837067261470186211549981797590789130344551952405186951868606343615505102832170907490719208853242444438900440062538642228964166626708103235737653332000033894615285693051328331726224617419143602070685054091508994286616118088693753273263351536884821878445109065024238332839853417722759167901106903020871801925287527524761009690007630964003800398057775905888415025350138703628707381209510055741670881226208755276067297452270578990526270670929303535407510972820433413110049641499683071893834488949116224569788229041007105113541400073182107902248903090035227251660100317030744814890660768134938177586680108437307860220998955130531551529412087491560956197651830756912890618670988045265532145815984938570572796663189367237302354785591566534823154588808547355699625490504675038406721203789039867947255101489680408885192080410728009718664736097398833904667904204085382948097596835547387504276764712092493479560204451872421560651233227689079276153955418059282897134743880724555784262642140365685122981736034326759119608405124776807863700293269539630507274026850590165755565266225744390991374625595803105292826350520107763804131551642106563975467889933986027537023733201835148502707036192439107714042636912710945892704195301484060156913470584235981221033548529834535223000263060060479800219043865401061293918557601922411803284378507813134060296047410339852336826478590355324967850438129912323764812766416431497738735652035564484071736555109010363199464339986614643574539318218398430353775790819778422110838327399041025261339387063533341252799385602352305097042991931233398902072025069304663852530039539984579293354901387542823000162977036732462439542597031318023993448445480389017960399707466380671060874919147001170272413620253135349669700736758916150198568392108705281663694475294793547293349462390424715250976311220692429904149555532146650190352626867202655052701611827214006128225232415602257527846370100114546551496644644468193794236889382488886092903060448349841550487523114191881983293809678207314949014583683023995897537785288323073474135586895190899100874421770191088803788108506595320174013623919026442800258963543500732234862170204827807123596873940926915632285207701589664404341275277646710970958742092575832186550157965104872587996697147238557528804625953777177936601100930462019701445497894036137534516963518965440831418494784572236339832261461681930721418098497607777160815004442710047328175922966880747828119683408411207500654371130865741295745555552300636098309173157610497119837928049631016154267045430656729103048810821429347999940436538503842295061422126643191736575049490706008274695427104250554102871703186386599319410564216810743706649432399730467599603267978418064639987692197403365119299085986840484581498124978336320803315526667503467874652955502470999968384540949049357018920207182705491185276328341187813907528907511284524617464675793147494792838601479948496894571492009670922062672515868008964609993495353774802684768554119562349142185812311966293582125273340326718813420887695410709336658629349740805580436819744124848527297592308273416213049860899357788399486647700507336072131021659746978962643331488675805265675540416064324667186660252059816358758790404525515591568026337039191568413771487222431612923903382176257532773302739895842646914158340065445005560106456282493277992108247861968747141477779655407142999993055385147193896317203184348602561492293484134257533552344414251374623678482004456790208840796430327536765137630026929659759219301986220396354721060888711649810548125835597135564751350079905900076369951648377596432634301597481509913684534873974980865447635265484127124469603550826913574598649066698804819018067840000414924530367254213684210059488546922420603816491510560659360939621730225318815219496297114479382551856576790909060900860102558189461664184458066395269308681598395199238893464175282270420420791478619224069448974516384724116906885712007425861585132756250265922688752613948970507728632469241029860546604923562539433628574985625751042938752231181328558106090944175771349597811404829474141639449980380063179031096527773290940516614737934821200689647833176104551567391643973314739602418066488314369361649752584021485737671997869962062950963422341827589345637071513766402202176077164716993548018360156917656481083930344560893104220480263910174392884229760759437602845932112948116075181679116067742350275401702217860473339526783017062787733524253858087668188557357917161092842881787952530803629212597267232897648976862437228981027401547381537285916258074050882509909015838707440794165708919605874177481032964074375846799791767453055089048788006161285684777063043797488259875922366312025875370318542022871726517872540565732311474905082103737358840133795829173015280940308853637028535205339345092382526139291881641584934353872475230472585991818090005999256756261320658619114566501950871583514231315536805727404282745201344442447280927601402972197483090417242194649629763090336266310328790724318716089662485367953873219736233321573461435511483238972103683740274871374250538299881484200973602142178486312133118654603195252852041832309835333985540322069422344433383679374200655010249663676222037516665722733448173065988925558117600164379330270782798302182885288563202110208004324727476822176961254854380573299633064238977810031591641215017255736932219882585688941630804848424610861666784873137019662187035933876430023616432022577095375535811488453724930547193984038864353243281149645675642757541447970593268404351075115055032202541154934463705518587075291431370188701103424967818559983479104727507865727402735969064515556690850619679182687978810340489838753252253298404044416932572807711326725413661391784579833172469765461949680616697165465864559484158072641686322531292363752999696744977626984549138438046429050155409877040802211741159015973623635560075362312132360531507913877874442731728828533486971616587913844021300023798174985212930322686401263442688684414273252773460542393603457863717841048964307114719769649057835870972600299793644315140994042674420117068093736259362544092942359773527964900337058102605793117506955315213830749292832084000233381658944401700877179918845040680227326145968401589701986999909099114542307648948307272499552329204312910395728446995651444137393346214518171042694933986389958599041482169243374704426486423018742179478761033523899753901522860249011621300510782530978203450008340228644178275054775321161175443251567579062683754462226537700315523225106797024569075515977996465666965248120746687532770107625135844125326652904391631009364194260446986131571257963036439152484390026816615024400983964320196783174636048731229083382913731625671952573238796302644822562415986990303534327847906447490607725069839175739590580148380905016345185390999076122699926241622454221574120590892839532632774795157143624587357177860157679795305608242574650501428538681065877859347327138409354866721028775417381074733811487956164837076343974675695775965550355833683107823216083158826177808346157647860086710821460270525118982147589764137016919240619127475206835264203149253905236869156978824374177101996109225992898330531081844850923698193677589203776941620053339255828518207663033445758763529430381727040745769227006741337651148825417479561212468302239753601877035600001899683009991834611045685977050273313134750211464380164270627559061815653942601222415195731711168441457984628027982991776976161010506330571364517755673276862035639516463436180987120952790138556894675086933999633107306012121759488528951962253226441689949026999038444212495198834969040185617234609205634974875228424215558228646120491832391291987976009470261836804999000825551413397318749737273640157031681893757606128228085303444405412424832949773997420343987613436353983452127225655004072585284706012593566500815604059368360732331975016750438659013368035290563844127548279547868741280043706679712591468708713570886749207799816629261275255655977814987842904221995634943921165806695680618963112985318549692821978097779648593928490716369938109794101428604196948472968762947678880906673789600196436907092163108821025608468044176760760750288995060584315752382242057867777617980804993023758844201741271839917381164986775051428089131317932809105855981492998390466391421200566829883532876821567918504045872617525473934594219656700314644603271347549154543164852279435159668469241801387741922973702026702910364239416675699031324847366795808285727645422897233859401663300970295310932534081050326074067466332515512260841796882292574660284448311352558296785317195355655534213404644794851700991838826695979752907762606622603170340040496794027333922041735277810912262722601731416559910788054981275217674504066301350352571704909353947904386306383881069887911954222005914743135618051089055335324609018916834985114037370790279471392109689257360739772757130726901456122913923645304910759247473953461792096387241923837911491263797991269200730153892355414428238067991536410924337742569300868252710359884576765011815733255752563658143148115294690230592084131585692306580500896059339309254094545416966544500897771438326341191901386784711579850010680628121374920602940925676337976933848710003969395133078137192769539627142075559373492541978770954875423605661075061762477785196495524685329663684935176860825795400995756156312852607562371250721783418583758970294073873195336261864969455054905977298189170323416342337965714815319318393608239259944688157045233009793967372271675219851084631597432324345549914976776381490888440317151919592049624608505155230753603426324288922994060083625291458197899640886372360577305172942653344779211662726243786642909656999400307455991737212909578760537312200399424587655627337556380558813510087698067390263912148996382153843327641146096738106541351954499472906834535082886164483733001090267453954825003484027573393220160214016083000510856080836888624823553172320339435145048564784701196025699020167137140144121249479880963343499367176490546750322174990031425018057548587620500763295350683018599945345502816314529538267756025334278111875773342846875245080636115085814168159397357483858031022012898896171976063048967606076716257804581728683128764458380514407702624631399542977298148776657580202096865264010080544651198052345189263426899027390970273343675424418960025858218205000180931849479077193955917683437766213265539535486573769076389946939706444701063754266494885134584317159815343361393715151671857403867586409553527712454488877698867945546817142437505637858590627596880683612450348621780024815847562505020996157542636667756647690384767376976255439199675844767012917534174267596788590577982220633691697704450450360561359832973558623319414162623770008391098194836381179794548041775034734206745912415344024735312132156341948551819607184404160716485904203234379530525131604595972756061650210655454259209657371791317786876719114459733370192248696089739944551543163365538131804798646865932570665628346414570062889907796815391971372116350948142875923073322662146848730316696028217633500020747102992405094100612612281902057395279184944175815994082626494879646973247351770593836369014096871300787857166724777156963968420376191385331255932116121304189088198672762195000340088434414927515665121108214670770474263530631731210130367151805564244436654971754705644730283109695502400041470074428830025084616271165755529559214746305448972907034351106266172776426217378599395123493029940602025780701486081346831658046414487219693017951248783520836275014109903375059896280288366529150206396065678877152393777583760974126615505387719392179023427364037239745432034616474553760338357783588150003740234436753220430394446762303357358426122647014669109173455150133011979426947500291563156813291230282929335355387333102331941434187169053029399842871469429902834066964922712728964115836946180891000656283117227482277572901001879511242235217280463411502924756703020971008962200252978194912336960623964287416223457076849388360087634121017921960487077895600039698520949729478441707105644099883233736885947871802316869598214760630969834248670468769844008890461149085824181288178032862452488264158494853134456933379386681886049751314554277836811780141329653379013524626223328085105655416573448817103550188122561282834737542901676983094372598245251972111587761862221272177036647320630747806103823139273511472968956480125535197161250379616310680986056936685307484752086082215047676727286093555652080618708374178164620507698501324985880342683768236103633408225297583341143674859614146084941466095274292259180275118354966007378772436547447302123763687900538531732812365288619737076311277681716116364457390968082209719935669960165215502829338184279941854903036542276833864535644966966353647646635583396362638996519215920818501266606122482679532942179624665456965234097913944230834922367034449516246134529432050901676880159020047082553797741580982222169144742061515653933827802214169336941797657548881418424365011811262407638951675826430243811762520227508691504994212000072059188198887257695577995652568282825021832050400335705092308526575863326636862442703277756208332802642020739935793044313046564152453357608798458507048577780961533848692854288350868410431989360944012517995379942044531720268615925431427942170501460174200152660931684285098588780002605177137618103480800380663883380569589746854885177836989659100595864789755355966045881399655518973237945202097407544138452812257741287962330620112460077890490553616033863991560828820459454018246912787438089843963147130997091825928509429454046888611745862339253556763300216850242534191381474717679733983045236945564780792350839192357201719424825308866923159092012669362536634343749665754619060179006110313335681073616389475792649262875767688574111422947997741432961075198560904458767185480101185252001878137044983262666545975221504462772841009246187017423064130505284653865503561433960101702595017308261119826936028837409611485940286732724533737374762426141785353942280829840854257162938584081557066782527429318864937025997207738238231912223119725641280575420647227196977766904445420111944787313918748343864746313220850590942248668834214959339282723268554793913884809233415134362807617433526180563881789769782946110018331495970077793964248889851580932375226969135455335475089923248286491041412188927316658771302317280698219408419445154873510572624838133431549242574653274783621969082370473645273355351960902712096294491001352999554871038847907833252998945166449948736324591784909003571596548024710102440968543184078852791039337166174955983413119238702138913550517110839719769832929142936659167023956045868802720504588694142002468847683209159943448919681951325934915681706753435085807702470616227142387031098313154889912886567849960923241473723211350503567020903137705337212392373721737838174231533486048030201652121216535875245420716175686204944554156282045198157827007499168019511427840075903953923005964599729929333099628499456756809271354230099783612697164633568344325752523431862310658778237896152943296115417997281160101213992080018809834926897032897811470344779520242954029932641659044588180917829991638839470817435537889023917881463308354698614537277522892433716819646150288071471082793289872845261408659216495900417227854769914213670866265559899854554799880236195470876255415335351402671262542406739204883424641792503400318049119251902437699903657618812967236680945845750315910370438086453988066896366205104893575692835984670315677119526453402367969552848381609603190781194776736462393647137472484073257821786096339692018219185682150986402009699015008650142542964046829044507344717772801783557462264744203169898011147005955737992433807752163500375986142736711578912207104163633617957403602362187214117663928603246031115527606389827424674732275532003197823013367509876514370139635895908462786252163888328235719125870058017810737511497225645613552256180520018440328456654841603040025430778684874826637258112144248090030978201177374696603675503480387567555309202709830085373965737700329764983531668473223521251845026471021218267177769800682946450386606333086274064221594894447648073695977008782349407991866195908123803733919773120989044800599939812620818479778621504992763560866831037974921429765322379910159793158816001594610965640796583778201211937262422878709228328749282414274908977565196717384026073318107085788183905141613966315304597448557274769026286250464623986269496007379053108185426038928471517089625041738051450144092750957952367483245813833015869185340483795452367065991175154537707601270893168351518748563877892513610525786171063131760031568282026538757144033213635779875004750626641844044561085561650334695469481803545067360890174914333306369204597577247521407780558451184949849813628232881231424924795313964032139007911263005733707302850432737219369381004731626183908628767551991668666169939512575773415974106628554260361656466719906131516484616865247743960456294306423302838952781311665450178516271442699606022555791582661677935433222818388434922215971051825808858217083990812756401808230117362097801965720136281552194986454849244767661416212266507527096055470570305123626565796931377269556137266815849128714661357364237578750359948465479563795877686222048688493439646173829741814032521864208295818158025993984752633931643509888309825187467616558550730189869113146661343249041772036754153386987775517493705408322525958350756244453625160182396187089102444025729695446279704351928782605981662835726534647002175150727825941322859889420666003370026828616707190439734890120145608156556422161800833302270058581327202892417421546745506784937575769377432587711185365258544412449564199817848203084937666089426204590913267435146032614707921806862613380852155040548134114867361990019843925716297243331935671588139510309897485254184467659444621886548480867403197513477536848300972657183422402257966181665218069755078740087039921593545546852962562393762956436888853228934745108556578965605344582326027988662860541198408827681629446568857440486562744699280139396765299646047659064432316877430173944847491229123049338591112084993996616295285667240633094452969323402026951550907054357303172428312848922550716379881993146391920663297076938758930786442040870625827690244518778491210219681221250859562877460428875924000024815163398688884183452170113676231153083525249641928774309622945388569404497019346371575971266434975411632808920601817918916598846347021833835396295782391671076472444717058586162368788548199721511648399542195697413747516412470572014556746660667509734218611747746175405503947481859013836810830751579763993999539117742055060127856622740091334035250366271030245187369569914233767509324642503650946491634713585119700137505378448174704647427334831997548587763495968628764572447648211560088880449305602631171080455003023751976069263585701478676952552537821455483211434606220386593912126105895461350636809690955657313057769447231080344437936096619739895154900484360379338939419115057258866250647694136722662975517175843059155976764672354367971398695961450663067375898579161114635472947380314227591932517716758762651821679143386839661541735007187166754328923721192896043520290828602494183602520495428024727417365569263384556223163526602953859928505871496140388504874399362272414786139274653536400096717425642264252511533419138269219881083488090900457105259990615522201216084637212579383637148914528577876203192985285680009885330786001424631249028674128077839595205136588024643066625719999068161490011014197849422510352408308433144288351046911040997618143185140882997087926714340013759411401329090311415705589392775579612834169694811434128100513115719357981996498542628185198185080490997323422729288814271569390329889549871729274268350780184000170464271148152195269831987828009144444615083339740717228452262149393853836301657974297224497575512657685257374497041134021262599207969542556050750144992369079435420389118174763558517928893458201179106823099387492896276820762262973522858403491807970512353401353038680166271460062468436144048571843905617612074474975653034860775575892390978947063834195188461034527396796854288598762360215540434841166251145679725973827072015847983370156507070311879825439497534478079942478699843408961000261107992828556024000689357132744484614111534960614889603731643284244398484965248625673157499093491499242547720409780002975171229777862261077276142360808859130162068492247779987928795400653366256358833722186161921505062223869932975583472740391186905960899896835861895166051714739774732372261756850490512118039299618749209712538588055871411843136785690848617101313790653994627036841517826928128380927455217970875435844108685633123749907869970250340568124363989602902344076264622006695760863966526030643045338545788069101446454548641868511939839901750534480673222320426333215964913205114561202288311208919337419015197404371362661358277090236590459488450672103153599496247845378275082619022870411019533351343564992364727974591934415672683929957506764960428794817065247231061651778304831697080942182629191868499906789731006048765951475667082194680520432211976818689408384648580188592715447591857147386499704124387237043911334719951676830903445366419901995209747972963603349645741739819653382190267608647004487442341521130269303899807261086925208900646993050127028091982766101548329556276435488013924255889402212126657996454274781754561833590235323090153455445993064363421458074293345505563724198798591056547694745340041075463928269926443784230332676263852820171052589844574006036777332466080357975637211681320192544571123863280060137976673862246637141213079803880117618797289273099608176156060028666415456900141607874118999588094637222621451856053370486014082696501430848651717241235515100808991054311832117781061781783840837615776655095607686135100168896866327085966883552489826071875456661681310777859443182695066294965603743269655597867591840048651221793571437717177801947167826396273744443579996327380141783135496386133257610177189959363144455219481409829912984682718845897814276188431937680162847692566979470924350709674475878703843991932102676714788651683506268947658034024309295446868207300250280627893713164038295349923286123707328530868194501419128874597559928910964460197688298917100803497435923000134471288547967706388790598136460813144087263262920575702101646319735666913692072247836568653139997261798462304922967026749253594908682170129101466857954032393835522794886954114804848459995086629134773816374103310842562861169976753745029390960982318300324249407574328636259963324962318242110640181410403250421599596849524791476122436407546148561273445161859239397656447544535972583409241732802354111482962351156832605424542262442586753312864154475261450801342305456023812583256879275633561695947532503444775693985838114161331998068036140968446298825523947955699602491464459505651831830629876995502322868267934798484986956872830428803487011339545599089582905740595649077905520854060763428309554372527744994447323880230662793040744598175616763948903956747931789778505240260029632826948594801288662764205638423437690301564645291504255350806242265292906073755057308464522424565071755393068190660636605566693884156024904589223209601092281048463959682226977115768417047924264060666431860986747421259748017728695083000032373926115776340684812275964511333220128529417260230356764117793782806847928756862970416759213036809877049935499181425537295064475911062559826740844002319282287977101811553727742260758557610643970827824184215215224385356367496471855649763290713272574696010543147906431375615786253986044075911209766263014119977096136818559007512029496922114392432696282677296176200978873460999249102290832816392177797489665581445786856005411884663995830587895151510261013485626402974715763295506582678317953094358733184695013221946829784101113160435054440307503241825004038219014366346892661196965148929259637335491924175189281062486578293506385968559569505856716992393209696726954664668551203087617019755408015357688580271397545554475992089472898357896824139838544779937113448798083329428461014945641692455977491328532850731101113718394737766471910329382862375260487031214826061203199773957564671252226125795033214161652663913836590860568203162183067240020328523286729529510375385380295260037032366104280762466816666397908861682384109922771805981731000792652292948063997929346873801122737638950317045652571481987979646524893315320221256784124060894581428614337842401803811122081645996089554836815227818536359525911123034101944050754956487885750552466439403863222208379772083848829321386456266368875318664276610020557404041678955949227025505576293499138174582744697872975863643863562902835610708143451949381454453203512610342354558973358472971392527336833859523258632439021173767523073719270655110262230120170579654073211403625264523739528618427082048003611802995359087450988366458820195879016935259299825242457157358977643572697097906171751734087009320823757143047781546743769854766227291084597242876402387867085376419239543743841846866483197489796880890909080157895978051339450397937101205051886458950044188867338657434334878261840271677542750210446511382730092528613834410868109376041652771825515372550748063471793629602581055786174274151777689404931411660959293442202630588660076635554215994861177517603682199538629166737298521540510371952056565063724684777272690152812850274460043740695755517534447157059231012887058658984918335173632071698518659775663368971935535879793269111854303653979660552535230839752440113951001330998916312054188350269285262727603337348829419259796465364164147283215281565565294993918264159527559394672433400867767758034013069087318644103903562662394044605462442513911008842502905324693697365853387662695432821630305331259360098121271235456881513486844925265607086980173983940006631502197023736705469876336477199911736984422274476212146465840716280215124235355211375166749706078131494877416179698981468017589612487492682163978361392066087562364849953490242419305830749513081189471659211811157216778583280895555321908393913404813858543294964457330841455202706019914470156380362030560363750608522353407280370214451001492155393649876290435389450809891342247588700884292944637900372954258209010162423853120762169058712563171798475031539673158675568009767624395393733976619824395174769100020669501111065874918002068663890483091063204093077549719537248180123893501550022639142557342790821477030817551417362268488848014993692090752712625795959189092640931842482063753161831123529628292135294912678428731889223082011832592220732958813253173304912345456097748817597992100741445330200055599631076888062588690046254443216331499387217409093148852817539155812833929505005090386667263668674328260368827043382900149685380351647328336474500397061470121624536177784609881427626826912827760299161187095167660918761686814691478467913268907682866316847633118221386002012042719198270950876233552553124445420922249571626250344229760308223548354272413771477049049546785480123505676499056890714461775123777806330927484748542531071418823582063082626176222373698172964869902521534156683948884975039743272880270321202232723296734262998742296056257683287480450698268601027428336411362112490197708686118017948900385412229827640867026544810809894228773608918352730382002677401026606849870827728518439220203235731799174136102890795274289361520439840375976025282195359433222056936966534661127308384760733150024197318009997840837484129295990839052337091035377813094050734079655211939200902672033988401109852376290709720421136105468832099686116142622578264409580723138427714313924476590841413996182689071651607105304573690053798885656662967128192452597256070926382338292510337537913269005459068558315339258871215336308888162560098751674725654926138255309531904213730841370240289328347027600790327229344528561040181503268248693826738266008580456025433560774207006856825923116455729441974421496397231427614533329332638125572379671347443133965200155706074891740221130351076206109025892844962739818674329912719115315838488548653474812256526744392287818567931518850225453257584541477011630994172546659661873320324557622569587183013529246178212450357443763513422336947418447965610729808512488341610761080297228763303113418805223111699137355988835968534799102760261710433550009287826228368212670040886892816702521606519229698859731723898392941408825432496460239081537329457329031808571953506820153604437166012447275043922186305158938114833255125594316414660939742065999268883836041131490701833662433991997674833625464407778773187051314339530988140598838601787448928877299012026305210753255862997110507215151630983000083883965760816218670391286479814964218952181005329528215256675483451206982211254189462106008762201300659820985057023418480381017044828616528282745941606773686042930153208959746272538689510837057009522996036037438045598128714387849337184843991790299134985902925310314728621031952737549496181778853929926200744834125722714475069899705797699568075546361150445248613035495500992143684567185382924362726986149597315903033343739648331017764887730666809306929846170594028097799286578753509165508654727627965890757473342087661637892899155052205578133955565085427245466261467519107769187115012045645655435014453106426177147860957633672379118650163091012907095152412090270027027964645318820174887369742977309776807976728991284841209613550335134639861849317299584485266280388470065408660907844179020583279194292159148336033619320468298392694082191871488427743288898911477925205361183802491768218356543309011627687772055814675842941907670451061867795386451625644073359006300826582746316592062715275143396709434292711508739780069310115482173902849198214507420967378087774608910521769286663147983492449175780559480862287876904791121088074489911997159176410149209609490606671500355126813354907432617055014455149427930313727361165996343019294406083882512248731032463415236912693375451615850071055317808437273386212812275827830467704278803029941524978329154767273162866553216600329626308303942633305532940942215629282245190248269057091457501766154417819636893094111119451911883251741093387328824058049408883586453051235893927443845535712331698571530387514670218936680125080991884076272190305857723945378590689395891907938375607972352109156290025371722267389267462983016700043845967571199808706927374721500270042152814330891270925111216776281818064883418586757265756998205633224203952086225334882601827825040742031518030839647513138976508417024964767531431158637500599676383115498228927042872603047872160953628845122745307829343958978740287119305450838009802192346099619254636019503112467776125026995031290768710421328918466766359345436899160792719711839862584726144424183564584991871632291204291901467818386419041653704375109648502047395787587804991639129575348784893872336737089500552856481402258953805392857117172916528180514874737866530797967318982827110851452253885367393600579141823162949401616214516714713016731977759187973938522748225649524089619251436501295895598508602824065439631288566644339609724320307461549696189620870887291400682921889004503183042032101131319794544665879012087935893208015909752649461256812208134351393567090986776678120213587007278071765605437203250282870379079532209880820981894985538210919687990384534561751139084075401318583016146837922666801867614106699710538859903413411554956532871553550266359508518711600202936517915472539630300465014084741306576834823120591450564615299812794387591008263470905491572502262428467833930568872070468970110407537682464352459021239605775600698253758278119567752949203047301790085542747948552019077414715643427913432246807257493747671689801771813760355638189126446492473336177650605309660105684331741470745341702318926813242814777653952060018789586908353999137770714271478500614277122140249783574587157435960324821688363346532635362476247231316433485022323561669116791660892770002014943929274727940935780952834677027351512996372327252155336282075710300534024874945245570433365877820692334005155531458832534433058833933040751250235009139181681858675510536763417480053194604634919039947175193840609091087500041160990572640093052996263823105217693773269734966867877925688367131674087804532991724161185718348477902296011310414871505559930938598898701036639242990038298051000526287322418649698471288394296861920809698317802556815733031753135777012124405599555310722400325081999432430081185561292035477081866028862321379010715847831372395603930914558862368503336168446249674830067991983055530200441542734371603971018596361356125222100657269566960194198995985071022094028783975276229363990112085635576170040009195492541681889799367333748831006012391955834828116946790575687413937341851658824770295496788384847547035100764596128283738483161367077534032013271415476412767180493186662233204640382098981802015429494451808630794953855087117265264054160854156893994630235281429541554623267511970299945939649915375744326532708836367993184772885612290253145952781272286813043240948366714481174527198858647741688464812621805671651781212781284305263543822992472794724252007739634794693120257727807287962392681180219054351143236139214620953728792302601545308739250195470465227627733542860700601492220264976343342620843506989105455271900586761608418244533808551802161381998395156183279545691288632080217680899828558743660493978352950997421872435057789276368452995458794548011592686621695937231334974005373877966140251578689591811479486497990113405652888066287525819262179483126515565806342634551830396823139044633608782185113932639222841654555220438154352507895033196557081068373450350996165173820904067955317214983370291396736751094461960609570877706658945421348556881175378583320372404328718674195048951382078444974212309729174106167338198928673837914604891493786366535883346345180410009824620808538283976461518260548085635102133681936868855312694162840785408743707937953242976206998025249171184191627608530616742554331449555027252206704958796775627411569208060282672193484589378662400131082500332484007227561868601576484066185068423214801534162344146689719041487131364317420420294770077684543566407859513435178891914951460898184617579834414080887882796159707869808940975685411346301369981874656441780103517747266440457997905932890122638527376044938903813280582008082097496787306280870468702220014039715723679563703113645881638374578065211431130905812435269083965292236321265603784708200897075975217737020947879862434272965370700503088730171620654189192655738826475234185490972666553502393704809775216581544550841893966248759233898895720931970892816023431595965142695983095480204376557124296767041654795837738595103652481251870743337852248755489998691787019175834912176268242013549510031658746966938891012581621918211371558442498551759015049960769438000947253053057701460465863204792486526057477200514842050246936619441776889659117532630170702317755200109134273282121363276867524788526090572683290837294746129363695746860758681360176721993751697687697870429092737446306015759124153064497633158980422956361017722010119511643825817358253628838782752694074035142162414116201127569084811654694747320791923225509221523063138681414791487998163244668044500019029439081428031258493491671608037654124022390062208814880990717970191264785114331501128933709249508270948314745280340381780907119970569218044403888981626007164649757590872365359008143970255545560831070298437950661543347565788764897952321690170222007048039120065573099667460378680476947787659142617283224531369606360067456003533996103508193122714685356094052225056601058311575438209238300715684068289758575767575118341268034958857510955546558507068824639838365511978305450479253497165864074442854964785313828332333940349139101237678598943720232813011588363915946790408450734102100652441473346459464369633000985249907363293716295619033544615497632703225059870630265827783320671730368184154118694795726112364653850545594901712360787782334119278173442789818416099960121116986335778010595995321711042040367181895471964520929441089689679595516004157554681732927851964297003648034413779925579694322929816022005001498397379634738640798923817430437973411069174711141671037413282039854759610279413000022293679063903698186231328555456230465965460756082071001075125786026973020169482009396071886317040076324412619699683829989911018817792442012467502733716967298227661585090257615288423661238822783657877578791956005277316000466747210454080561195824501648290312648171318087418017366473288903084308235699137979990647808573228359732591336740148563433074683090304983764098288097983586331821432471756718591902942293416794337151294162865170664327377533914367666883663199157109438153768344097128292070292160883018856353484308868301058094261645364480700450556251181113055453725443815504897847277071071987706026145808307958976225121757557419073287279072897179888324034603065162892464344413488968017944316029133700918420509681817062810257171555563012861367695140612020782614374770074283987138975985139519705648377401698870260319055877592370942140404150769298719296976527915440192339820502868319460125833569066349473014864023718283022749477632321737217095053149170604174601783808598661730520145008629284903221949886889064234130152263540607761298996208100524590392071322278582395713416927268480420887026761637339125169639936920943469194739000140969004286828681716355728944667549722276070394775477687175075338807824177906912257929605487157418424863799577517636340325853971711341763471272434250344509815747633041216989906615738508189473137239626373988375568496647354237606356824990860035660994258596772573140694101281895305480954682997575729185252791078491517434849288637459741099199684753648419616517160723729336366307014471096165512294233792469712672581801038897999261190240096861654966523389543162399591688400463705738842136396320768974412871630256555291130616221619457587575012812805527039332378956492471576158206276626303964056080836549053691911085045304293255627872794926442480155967934473843569827419989841356312868982898766130901921626284180523874324724859566045900991262030807908008419438135877060286803166419493452694379713370708931647300014145260511811047148408892213284996139508194359646727164620450796543284106343290444253124842565943604175038542101603354985860835847860243304493069157987648852443986674020040118506108176586483382145831262101267313486051519504536264289620171894298553421528910360021830960563739101729093252588188025309525885622581487187247631596195995441218723159171561825488690302807405578190196540306159599140617133103026287119084664273925494611976953440174482074107342166913343887839151972942779083533449843619273591641398568387481943432095261401213925857413046254169654360741189177031485111415616990958514568679374362919499428802392739951287191342801759720003916760829968709963213110836299237035023067111242890872163962220748718829223967378186387105837352618490293074038667360503618482485552225596130707739211521474309200927790469397253005542719095912177721054613492042865416166271612620648860376246062524815111073278391249135613856108137487674120510122324128141869968014621559437665679870610932254422510220584330840000388203783569257015996694592411198285045074385998968259405967709918272369687291178073540364552379063979122609135690015605387358882215000823077549869133127815531485895834957282139597747105822361846589480484958776682811740564610053216902874308676801810580859947450820734785584513911006315488311454176168741206059723363005908592903343730391392965290046658485619816665299187703177585947542827344003440156822564991849352649381562150116711464470181118718935085381347236510028795102070931323760276745417647646481391267092438877321724814119404644669230699649494362133943837357460919726715914190690164850637717348652389206299364112893083420029190846743620311743066505333846348653316592717217267811745614948071847894421608382256758072415111851013042590165335143018625832290502132139814867630647440982052998996614757141770658869816500281782708066019423938553123293431625477368100513706226688770694027515152400167017985485948182615678103513022310752995060341985129354765768453857146741894415971943138009444027038924093550111197233348669276483186734911152708651461822420457093856460118761502469629546155335665716523160950366264887807692543495275682021498362748239190316135722209502662486064291776954936054014339481712696963422443567983741139283778295060065870344783559769821441632540694386712368720622764558099471109795175272734018298812781795068260897395917989423389341082256034076763966966148911486077270247895961952356604288637986479147940180572251956387103475288932686148024422707725906068882157203864473997636514441496827227125593366648125090781737697453688075449151774222620898753974386693634841655092371141228306331362096749352713525390710781453150518836355473573409385552326248001027250840274291607715050951414192525364969308231681288333492390897045125812918742438791762770474826740402777702713768076857163710574012397733064503874683064055322374634575677784594958727093587195327904494628106441153116542488220007286218484810778393459917910171753843835621200879657073369266618898391173078949936408568540170373599447875232499803645342233778927149482138758989715461715806021860642590993893458561384185945979495102676910607546084864274038866567481373125460148472624697100032331483957600109450876201429857058909073618622024129747471805509058440590632062546048643089090806510768831892447145963793972287148314977859837540234095577369864663052281659633273481448730683249047026239659092555079037322450053900782546949006187192288536827505026643624839602991401911762940754401019332593340586436705836566114254568403440481023042262876572723891172768009288505365886760277822889251579636324632645864900034063764699747120002579559373130080597895961889841974849829447654399584350929057379018596576234557677683220790381105157306304160271808885473733874073712754220961285334709187527020042960857628894731170325921306664116657560755106268429682338977295098918588133593876010981714021924811660857354119715313634526350013686302224557167629715766276020248117505393415516637298231352318614735009788162399347746751273496419881356149497275939355622540889994009293543525602239335597389613498513957887513630245686838387382597960905127815303919894991970923566283468122505402356544722153729046404319252276800838420124691653721723413395551273141072222679625291155156834973218090028964300676025548235692973883389020233023667695100785062620023500798138004313042575323107910292546212408880585086923003655502537543638833630377607459962541286703088499548121440957210860567274436053726883109577023462275844383839475659663210765439082681018352514859805863000671419069925321026954574863176290187160272607775175597752202511709516171396370083100739082365908095868505375403974912702105093944859939877994546311879897635042421714892780363237358775826256934352186708904930452917129610415321769140598010320772354318725854960472127812778937443944182730128757860175919379906072737624693052186931852701658699675276133463166846335449512812557898145588107601923298167367043343418035221691901904506015262935414842987655410657381143425263091518725274519655328391139331190296941049913750773921259256021319694196495872478914968197803069204432732273875762761598203320889283156613494954513913522847945382073215555683985207604105913529781266226707569670420210226938037718260668426517758113826019040189456054333789441394536293488307862349461963257789228025054008814057735663050386168135988724796913801893502819839826951947497987685794513263968698371479697157515006167286014277314463867238845647898366403569521703694288890188155154323056810090754933352192829370866223651103523008680249958734462623596219197958797123840829743155311739856997582300951283028039915720349152388432831417260831765985030521654105436253229955243012461034896376583365435077942517774154862790463737378948329998147791623209147957952989943954176564829091508653843453908282887297829355400257369212349614247080783992396845238178500950209783763773444732708458422499544385775532069086559675228711405300078184033167409969429714604130784625626109701711164785701720750164223582383988469334080203452271774721016675211420171487049288741455628994248923835154677212041062726273479446319232504202058642054597691866944345292533808489526510204670789065579436457493026805978476316228735471628417333145041278229234302119749862421081712516325168101730708143198722739837120096683217162167619617668321022665586160994380329246899490756915833404757604890511959832968827333884789834658118566154900985338915602018141756436112702475304225307611287964976632095757826533568534264148619507089905900575086824745226270795915339141926255843528525536057257558551876543016180239061053441855588702015635410242114041124661955043282827345523421775938680821613394866236427909036354544926036867861706449167703216291505652536974833830989537329345364338498149301503638094946293310587158691082632077240781871787523849593040903858394464311043084742830492507767286584308658403213360308252978094120885087268605688830353154692069734385274264267933293923784885544859134441937233144289737180107844220402578337343125690228250585101388699140548208388590749007852958206845440156595602781149289909920768264898146695650283983592743330031191807432935066872213987097050726312366247749334088511353277304274657598793394377497601075557314914829182405526925475068206655188040259621431967079157944881122773348768474663079217287099596430029487935965925536043914578963108754239441184486265540247674200839801949134225266745065528272228285087729042205217440325295412333705683911164219164527175712782068632091291739906449270345286958954976510016400615575653359382751637809885581010120626968364291879482835093163452000028142518589984059501052284801593442887016741711047164723411369720890275604206520335096305947067794701229341307112573677411674216118559603271967293406639505658794341971291746243884429594164982995658874726436977896411769868211286876566135921619059962298608146367300425856577157550282191312651756816315074626877549863936364065302519180905565175157547670023948524389876082471196908845515820991425554326835067965548977652966829630908402916990370113280043925059293169576878783582452005167442164391110206668233648539816120964818184204439197429401395814448687191753203754723399805165326862306475980956372764864828307857733599654685250185205031707051488232897759712244972839663322527375428756905917454983828559665725081696397239725144434454593560674165546526806878461878541253233802230334585368122334528691101600487154073404547941428155849270638297988216791264806527011361511127648235237278746226875406073113362255497809241213428479778445117602944123750474862547861401882936141842608611759948300146404443388674397576135374430350770025804003725434921631536274800927167045713946804824118410152524437810281576599955422306242590874236389772955890036151856710203083539566642335133205901270264223006733042981599478878827352563457243401283845840807355539126307601556071659407458479580184185382203190686871114109494328569271726985967416833818610464062811683354806004879060321408329503315838331133797058743528309261924917346086020746814631888026090444537615683373371666839669888571306959443760564503583671453260181046352881403096010119598029365448885869855678256745502150411420132609604552828826196457231072052069634038079950765069586766528965794335646807248043553199791522491485253303971529188718368477923754983128254204069812758994580856027317424734469192138051637887865406240907763545945221078927694360348712662266124912858333639902627042340533944259075145185933468374251284890708800428577458206509256062891421111193655462478701370370843742806845694676363705774103583267392320100747950594218334328272312739814464542853026387190141817519631071443960158100605584831022654931258372859546871747589971484011780772391552745661664533822079557674112047782025553508302428234021923602955406225252227667783153189456519325974522174016929411470160380637796181811860765384239824747901611298746822279639566475210594864467260318923470044175097713140139454312476408573589420559755504980456088305802935809420213101919628225624112147117401640665995763696022846159848043837607314708649471961605156957352749961917110053595849665915160179525827101886861396041785524085499262250329304697481848162401820197564767441507372914305898533906851165997115773045883702825184023291559534681400594838890196873945850913372126034620054029592062530006480216326893084567503574068598341769512434122432101935675620997183990993305539379529439909522529719952684369303188822424480438419078917756212614320993718340831223869647041897345712016292975335960021386310875566580327624158114190506782903311862051883913222312846081166696317286938801730337646159636136387518553691465032003251074868340687894301814610020741665949748970234851957593270675381222151249531884580077951786336943853723847967469649041170305146008253850829675612997925146615065319136315088822984518619697345034474158244560722698768192947360506227337833906888406210017041670649170802316361535612913826583696514410037631256696342866058562937549437598822409231267043068730739535660193464043801720251592512394102689532254874198784491323683230852803844872609851105434651497997041883532871691328951431980769535349235561943982337767583780367644049599528922887787038402167505782013852188075860474899487329496443072083690374447319165301662697306566109817661117283819858697137141514655071847455663311632829528685695347462564280356328250555992473433846972475423580941476008243708024148309984975496113345011012113945131227152232932717732145904033224569266452440858586561578002301440380084041422317649989021143873876220842857440785814048932594001682513237545095520859146864233731335739252570059890862860415216949177272833205826790646303060240949759138747638920693284080064171017791186150815045797635464800822370046640388619779843402970057291570269192469722764254894008077173895458522501142239106211286925161820051729417857255235885468070897089920053993107840819673128705234602036067787607660351436664539088418241584073508759345847602051689531791328349131402140375573505394269389434658040999319927854191473209547391519472461235865380224616411245338388029902189389601911809604682641868134802780018021643399004112815785347541813804963761846389245515101465726232225770785087788797078074109637691773255532681396867631641957756834706207517356794924420084902004080759022246712199502663501028221320824441293913821910954506349023612318920342188239561730392688595573844665787687465709846609087503176067762065555797353003346644492504490307381827259716940287439755379271802140727779585019335009816866580063101662147058797639107359998140626629592450268198166593589611059100441334824352394924197562961926443384371890637090415226478002896294548254679294858393500575165849410865322373018741868973268566555728103218962476871962015201040093790332324305485079689838788037155906834959253217803357454700959604961569376475435525950416126500900259937987384590799972685492017399267619839736249217464184828172338098662772229134543489901934396918981997671954621687099964946569105475242408836081338938039144100337365671554577756182167761264132391646696797573038222547417622815096740036293995247952846996791160815163127395917207621844669911000312081081498256619071736434301100557381204312471993873434420851280047531973704326611918572435548246894406873180342416376049999091201065771945976368553192903074427760701550083178414421991343507584262124064226004386465561480873551494385267502575587618777562723042498855645355921577568916221251842922984275931433700037751533001189314259542963527109481380277157363000500582507146846533064463232574671771450883130827185183200375074871851649888963860523045577220301089796089968709063811985650170342799160945222244295963583543714252102737132339867033747756729700993066903818447250228345963003574316073788033066540731327312473710735399748684350963927939496198782341384231461205367914877987359846734855381036742933108928067850293262347993966043086513505556419225956927185919521949851635297521322260963320054089996140504388739959236649086309495818877182137492671300629817634815095455308408136995013380098974796771043853045216153104804786151426123186542379800459648083200006330716838135285464120113514240939051841926536451679227800672568704368731971893199806215202268953098717609508635741788571467763577696800141361436693284783319636466429657756606998307742872778014362014329753091566966510271287464128447603025658857790857828519268530886977556118196867467001389289381515477211976702258884420100052204033836970694791336651803055979328435175124135351411499912959539476060724822394743333333174249103282954732482829681914876354908434771688453721004115772766827055519846752304932291336249465553929837766331270843246708418890350960296530352178171941709310799572413587616522847441230951648843010889449458628382472938841586439527318432692684511962464686024933442520770546699216886762805252430431524362952913129437932836921580720357119948513067627729722834382815796142472566266694825549189202228947051549562664815907123282594694663396182607685829359833786033586686963813688747148372335048449596748285044962521978999330901588966509847853664139754091837892795283866042446940756319440063342607992392789027974366399980377635654124867146935707321788683724781697761863781912826873288357379011394141437793396050483598322709874352298024245391043135688184912707036223899494788476583098479102481179372110904669267396672715187253431751001929661364889501810779564287146181108601756514239990990984131321114473060465197478645160189776160874618022419134566283864552062256411089037053511445204096815784749933777439623571697057258387891884597729550288105388080991228203257846449774160098713278012166470949892129426968958431500336348615380389443603709341400657342013421262034876285626232848418302218305055999246447696959887228647217928876293528523131951775812378666402340528006241198507846741961903793194520178294076039021803432021120591369072999753959589185107111159911296186026280475866366697218522466389860596863635333697901967202810767493330987492008459177679368635124425940589681210404792105419997438484617699072631122561457939000331629818542866492134510599064420435413675613742740560679789138999655102521553317674025509149429582918806803798591203672570723533425854302823782295443095500015102610030048229410782759944655369500925108748156584638492870691779107609260465417670496598700329826146105020112284466732714585032842486196126325088362122853334042308895908256622888041879722781921038129580141483202187292261757868196874730351734096007671064839912483019472659349300643962679999592707400268563214127474050650687220769167020432133419576070010100781364035246922329728248017283222280762571630552612063171995315243722510259114216866083863306934061067235080509144011901430574911028066315233534393084967865746309863923071545367105718122695476910211902750219967648581544104411132802739653109833400671946832489115660992809509999440164276508185891852436796723978856644135867558783088208935394794028199178263164031949059842396151116934704373107038605041382663337085810446429969006399300288469022735783483357798788083194402459453489646044027137291382101920268999136441646149476331751184722168198317145472769265901204996801354578295644786204456535980821440371908701252647394364652900149154116699211349042991805734392655401435675522776370168368495534411520441846978765891293030341236658897515297423331463750623135047960448761030139159720673259249999369512462048130732252097406913165651084460888057267525577232138467015909392186164506803050807970653223533388338281486606322562400973173339582026456960716137589429334126473312533825028607158807137609348251027253943470282424008737818735994270113670008842761375289857635374764803764095138695540179239530712409604093091919068966773470563188536974801504599120768474742113329332361349526819255987647427414086532358388066956380377927105240391618620378849690810873257961189741047148038794740927747401246503331022521302002108962535927000675873692316102555985346674098243084803912068425084585966268686724634941348428464388749954892099632853397871423086027515821624020002204851110888503304896762312827021464903491031611675468436892858868667659084450323688338931443720579873741368909334273575743733172293353677226860327512925626755998822556328667306352009394056582224417138327574668282450279589082441856758147026062111626554979353109031756205580834323750486027242040360735310559437363162842074831056285288388004173624099136965774313942124537002950748953401090274771233604175710369805721925315277913864221902026233256845486322561724471791959850148009779262209898862821160617563054744402360986502574923292210899796778308983321662705839194452164702270137772123303268067297365948129337513737871848487750663128559524584151612483470455257948357399721304339364808177679805778854162480937888484145956464857682742904736845105187255482015390630063017356854645080120946630893144426737359417658046565338810294935803633737627312303170898850224351908334147949480988624926996767468275718255514900635946772202416183874913022004869942762553626792512750724560033431460025151514190119309290332731516110469183669523569697489394248628016801018025152073375512768712838335412758294418100874557401066158569075484779681834588468859233092557985887157679037772245460077590351557241321922074567947751861984949895533080074197304403842880860368608397411946003829827891544149749508951347994806051128943504373006840941763916755059001710394114630814560593358941005932083436720438300441769752754258274902104830751074889703462942780397001274191119260501516800429336078676253186671756700210847949846168822650337405465295630478464771047191536361451109928744502185079207185571810801697848678800334628024059074539869179802241048474720545964297448722397729010511730803126231038205719125863138924848310717515269265682432035197739140192189958222933267865106808393071272953277200931794507316076759772543289153609205699522576735363894001962746274761458522733694715660103386330748913887734487570836957255297034240307064337353699786556392770581068842260865593477270632849792457309452311038847280257206504256435835808240823946588287397121173118870390446160992211221863585603488823705052182956742009311990741356885978670386991272043292922387871827839300539646061876853675655008144211730507258065179608986021832842109454198638219159077564987059187780264539292913531438790230615848010775173818779317148017970463669561471759880248315841686195721649488709614256783407251839534615136575873794133018248860632544729958434081625865055493923145124617827787563885367202610155044720773497587674979277577195607696284157796066018468044184067639140485081278651077078482784660593345101762715939082851296479307002200594131166415384728850502990672983028506201215907961140147731325778375447368514201219803259730968126160802635850919797542286972165663954588034063384956250996375219630396174300493499850356348599481337949446679790350300127189016712419188852858571505586664665549299566175084417007552518184364121366375602379945644252607960127386016513198085751045041258746498778494630408411072637702752796966762412218738680464958548692572002875650132834298387484373148293362349154732046959910168352012463335913015559527884728648749095148283226949852356895321728958568880837199223262010098750935511945474521834291576931048786109085348893547024651951238024232166047314095194295222099049129568010903782046027357749406316862349415473974291924080601037034199544052407786965630095411419413918019481318853891525244660134744308647996700106665568882039098420071741032159354949238838370179398548898030270254357019216456327783502824657881870443321565326951086490967238218710836988393808040809341034021148368725736220457897280343073218424101231596285080837358446121572797403900507927140322999907237654274887515421509818765018463638490547490772742101984940385036567250857198695693423122333719671643496926071895677183840137999730068729393121379831411518029010810685444234360357864339011074678309160538188000822286611637978079449177289108002793970883454720809076876827546648509574570695944482295986986903764306707011401110479987032571947496107406183687070425667385683176000516750269848513750657129505148360178942493023537294085148248939405728797474357851406204984221950190903771258477238369247966918345130175868064964813839685384346325894275899302387466311490771992687937034142597577692082469724313019474388536591786806426788093295475616685655517920533258953360480094580334866978438161336748937513888547608165175010974714113933929159039582763641794709490147017769443878015309012488808509804645251421707187555641772937953824493275592532390183191707756864934799132133124427966977907132329597988221474699738488424268925687493481021821526107504896137534514701548399795718153745231206348680670195431174524509481803056773485727888261877266564973389837086147744292980281415476121203289181245321559597559081439808455796935355084186656818073232903959179731311767867457141805915871702973412045147957032286261410076229616563267284954789332288999925191404082446760196205108066414498584286860788161259167423878917927469822370212837395513402814487308022356510664288323248451472694969525580698723739929621152937121004922113035916727869113358677443746056060586828992632876245599635591651851198972719820152995147143766182897692156032058793303837037364432383545349975444958123439419908287245469626295945820115671406009531890086204534822206156826092826769698521766957086742566535468039272022683772018921424570024738032001971328346526592438711876130352160971123120697337082171010887882697943007631592734159822493358902041986826425002661907446867735409680571003430566083070250936240425345839789908965368574053029332288018642715692307490161835416718620920278607254586580621003886627142364975955505357743732639664803591998177948952190127154345879257856701863088025132816301690769513091791781330202193731056859994828308456484568241446567925935545965973340367387651929203259223775947642978901902811345729767458187270486749993581416141098829682993997734816903185011752173629548110231802195489389165351185891812768717946400828524583071709197264794550106705119181206896593792868558274101073876189660443276858682798823404854676583344381645489128904621166066911498827030376841582610753827059167275394009907569695615407939241511915146382126483808548873130497239432215133173292209826055795858235025711786149602968012846944262047105111055543045526088895671053214993776221475044553331219572915555032376353497192440171837389508857070890907609393644043516774373153288145080641378252314502083675435154062549225451490153742871693468027621083197933427748147282238890506225737734306559051050620135827707992761182509309307623968998512373989802586351475658402767567171488393422870335934098862331156108623025243855957554239946153889163380673714237403217538445682659741500316868571953971507473346400586819442298488843926731953571853939836601669431558901744261377872319485400790244231200958637866551449769130358741556126692891451096470736901008173876677021883985034753045556837980033620482634396472500608148642963606179251848204133566203692714012373076236526827280542178724771912533793058418503210437562581129579838778228505002409699678083371065387836558743061798217290001756185243181663828142057319031868201108972808037644224475424799316517203132084839237214261140060677709557768689451675922562374689956640329546101072885102748357035265416204588089995028099989395861500227051129265161046373767708038445394081460772186002951213283396763186979769200258944201102556706117318482003066654572373110972206022785127023400687357282034966734850025936872417776599958105317039220148853043860870682085100442912016063096097467350604067504802692459763961945944625770296594636282707247486998213174062107177498490637640291556906174367859141844808008562005192005797990638242399252665700554489639042867304234850963646499044285909888172412352008678394731918015620291901763483234193337465872454842914694255438020075029587320781622889549015652931241491495646063579027244998970395144980582346511547447482813354848351598601061670843777996011165181795836358451529154467638552120490673055262545189606257552329908828424495556945594183949694463469880174186147235190312055113030571508587246926452180494506842856790812294151918240110684517957453625254810284666626100150744800423183530370158517471247493509844239695043302940128414552177537829415353990829726395364700993247567562108784478501670804771142462775335681622127192915249599645534894167831750755008522514357242336643700675897470983422920489453291441926030035391594797709411169076403523956620244553636333943654786621459294616865130162816983360142850853050505437393671860767397414597865690416146263214306750938237973824272202494284956008944720173803103267723327246721443900818102175037014349021341264007221493482468533925411166612619980959786977569376698863014834981774234120835961852051660427357550550934981008045836799283520547994149915816415597643298880159060578017558084103111042196231466510473935353358013632658274433047761036025205499666515964401530613634054442709241385666951942892461296058261481809044142026294435283373214144581588320873290815354193805449203300732404472708530911600168619260165275377924157668614055335139062017581208502250942129291647366057776959939247026792508726828043444883950896095853363543464212392418069782582208044939487939761666475102997500169280389818437221357797328075335708825820615979723556284247780576760081087433812202848541841262710341685761601676917388078204822544520619972102417571678728265853604921103626542503272521044798902301038475118876249901831395888160596615865696098765687034769824593574983520084792414915020382457037158110184783941008628084456895406984794594040702553069283333970510048465770776621200724052233034394772406164031973633634248503270013417478404518294319133124844228877785612817951989432823020715998925285591400665314598538505151299782840724262300119267416130362553798043113517311604801047913409783224824584892983921678695162461821501537033682689787518488659588739036522752533043327907147972050565718366935076921280795147444616629570458683840851534438373846997567119292645194663263679896778589122041588648034615658972217981126412175007124623167829166898213895791908063296760899037051418508575280407393944215822748967942455383858632680418346648716644412014554724807206226309108661272781737233536115434272826301954924823073963239768761670105356956743083541302254252624402958005826321454929036920626315812417949679189378416618141465724883061803280313945611224944513271706814089296693486444382990547751074959075654393555236732582855040309798345316484163400660010062554501612849602202763445016563925117643230222603372496110829055951459749559925478453827932593479653675009048381533756415149729343206443794040283810936979994067001151736285834279170949894222425368306029513085707087009519645887590974184802936088374552477580554949399624730850946893755776023309077232239334217026487211014362776553965087297587638988490999928343353606670805064246669532129691124258601447217124466982890228502818625949420478483495726913154002550997530754555580796089251740328137009796720545185341604954764366364045378993837710737514743138170571025901418204922547768879784712003311401647273936358590659949351479877230843329982191973246014394206550679143881394556384934887036470474424717064240234015409823198259611373163938474663689128643469247257630240857066645707209620081376740468768853461110114839409258467950999182997645432899884717278722470393500931864122180200680859044884770713388598954590502949911501912857143274685675003174344358599756837826737845386178786849529799128319236823071865345315223322979781306827297912707946659874069623813360981851718519834337920418968609543892292807027658947798098104728819719073625226789994341992405073663793012311691356619312370128973132219192989156771433059134022422065846703231009722988226086538948996438806278175908783317622004430217473717325652781280255735052712362223099657803266028793746085328483794535799144807870261323074820459431323962218377257448928326696373074663587788573299684120556870680140815632589418117633195958260144436818948016603721507883415639911107339145768867515916608469504359400724386993966582701403787046385353495414792256715529423968449312510923180447046649569714092826084639529309585395717850488096574184625902751423815351170791295944543657580245773245813175912703828399755246112790772592829785264581583997135434430633343911569741474486618092579925926164214394289973147205714465885809034652060151860525693868866120465598316820890588918759356844148305835212159862256845035011527133536240207865932728093872422983201993648348308203252593461546597565678794945666988110226456469402812594223545258030262802994191016732068500191619246167325093595606774445770109538767456104769903442673712883502022393027271081911547928076454720972295182996424487359539054114430360929334609949114953935353784666303389958731343772185366255448479180669114058338566921091375875284935806640046235015079303745992369296092919827916020321743798317266348297593077812512721771894913900510657856983283746612286245009673291011615857084814227733382231824191053337834219108438852125827355967275658118726968174468903616260869091326741279929272772689484679595401489346166535857977540341891286914776833184406226071608740225931092030665879586648176545007084808225951342913613713518448943245881750821170207836970612786958748399017471259102926444029563876421519018772351065570506803084990497910820605287246598362817586377587399508871656997547534110600195385777859523982332587651886713606085800876331665825804429608687768248756500827339172088425444052743684773349553097549031135420146465804018072713804465893406658760758981500378015028272741306446853962400845863088906591467253960125474897681161054986637450035757840871943465299268205665478349367703205023863090662536362009554537201595088544526172624290841935231262139125105305595619906911700949160899615595258030774493650495555059544308361165160356864706841854666634491183882310352374193678355450927827117834344126155854613136198911172469853309616414157455651805835550409437632817742044309834148752346095080660721638385499751239660626632843716746846695555643386453488215332448794315827199629504096516607968398367427157120503368865232370343658493854767541348878455953589037272371933121218417875083884327008437385790498926457913838313050842923295438598865295893255422905124874952713552689342120072920748773909624876214335279109058656695767018703595927092832843681005738947866781744922389900605500515489025398105269949355251920313853203329014278941211762729938145266824654977428534351270904698692199571703849552641727691149019470142811746141136019589914590147891779662979147703745255463474679285017618063615529781108031266719649542178754210396067250256889787542826488714686453315821113612047048561743940770995657052957865574213139538957848880294332684110905240582447817194045265303947107143072169650236711095255906940217347620468787488285524808521560804967964429229033789609364318629578360844259079369037294434275562043889364299379435212729703436267445598555568961595532427460758446956972894069761744865002914842262371599280696637692021514455592134957751714700653450058888789491935019033500218363981114498468995231827182088317255909817292554973223185435605678791667964323077999890397403619207825215303907233809244652614038328786265976561224691884421205498326500595767202023203581846040709639677665674014447764633129746943329772613453711844397836282220398960572394324419497604651640644832196068893481844513582229470428855805536205862916313919720785835614014226058835863881880158297411302947437488518302097953244802837889792121755341288447003053600165851533167444487789197739902281932722600377287156142500639890059717346868333777755977473303389005861219578636525786350534934893651709975058411240105346127363886540507262959553239011475947121648451067683377221871459229333445206774658108018078727013201860852848960221466072524521352959609675472230058015703267650410039560136019010892046234203359054233173147921876247903096471080900193026088365255257717949794172958085922997132534438571221383456878499816238521009099887384557615104024687629775477216866229706455956711891363497544336838655302366902118700400858793594741225736135576337877682580559448388636082071314041320038790354107712209314392921024284486276879600184900695054770938982310393695544042672167534074481935148472068399390149257557258720693936628197313950302584992678846881923269771415064602358536173647513600506940886990013109864446917060299629845622358819362506350876147188009205901248071453126739908320805033263060454703010309131539168734979469685579349491640658005864942019571876306754927276581785684866594890751869395565864140754093616677922020579718564733574876863946382799056767670377838425165220992532529462826661101904235899926699517923794434644821416742169743866271200608743084806853398557939393245831853093681997624967064557242222086022659844528184244076970095059695973762940928254039936557702077197212255730048471483257521828354263625040001612159702655406195903414079090896434663685478483734308827148582517906470800617160169514112735806520393422076244727805456218846329318064977553223938199564906773361596878433552963395532964769862315438854776129113235509291406149652454946208696457516825085530147890607456269795924602686569977740028053707163950764529564714408413586069496684723575907189258384006500009468311530714992572277514034205355446865352889752513731189282397036792887841754961635307936342122493947504548315484738563169978190512456672516716190159656022450371534288271295397664261818334019307292751815643599377689874560378612236370586331830485852425807977939950108440761171456580409372530024394225791617552692916982053129986460598754099122003647206693051644631287537398058753841134161366789288723318324249654829480233041239779030909125774384755488095569642740067777012074944252008422915980748860696773820719279573317164992895645777215705426226971854305296295016778192717092336196073813354880473629559521117794841455277710725833373006140205633609781959390973811203149169386116234497508043320447514941158883686367202018730183120187652821040126208313457736464477158236803284628364379009329876548311184383134230235663575511122080709419620212540014032406089597002396632017098898113020749421441643837152948796800378026650702500446860156429136663471170245167251160249146767644454349201519823980850130585108834381285156906432880718887119111981520694868938017795015165010575414653793610543329471257207245129586815003966941047205830581550976642374481770331888494047475885964468951695533206180066325543209541810814535263943547059356205322930205479427201132209444947328788998862964466155331875089341445867882423139697067046812924917191931712535921923696582417005241543107989772699817594779993403541254159643850229811778126222637817168383872011970719450627144074837982361665857056452184917537529893017423528638097693822547914993748174580591764402273546246489336739078831389598028753104647020560706934614534417866539845073549388686164462469526327304240086570672298914917891703974720984731523836653242607715018298852314305557551040327396272041833437560547506207938494809213755246548999723683984809171633307175718093856583231353660603332458483157811205513219988043420929352106539670557954647039269817028534079395067997021354924574001588563472300070734165619586938444069448021419780451288342177630793839577015836235819449945505711236028678095197565140403226671882870101572761838600351287972503758826866441939208387358500517308672577000128415836252893442442844148628150255818488590575221079968512880122383356262665856986649958634952349007345594085173928611839751352376983584668273634716010476841342581823640652097627392488785050197831151360348356483386337862948311139449547995672605444844872877988324791296805061087198378577474900784929055521417598816057662701139161300275164885351020585432928485362034716192634601635959349377889416006085821780212338980280044968070099182961871380406100133085765471862983080429293099937759872546706922921563904964892245747228255146489281102862252104095238167055458726795000100913953558111845408651898212193732423175803198527819376716780132902927368895816229932049476115390213921091776800922015974186730200263905374486014691345817502984078960931867858215762005524712039434201064747877733788775081738687229409656122587650450988459512351233879861997995507035201043538726790462671958601007889334888314919405826228127379798317931470599832349525337752546444949883029228293940516409546139014175229325408069296279670381401891162325580258682064617789753729095190766177675061325316828489015605232068800771940836808190259366273960936217968613618294571542930788067321178261737617430573579327297120092319503704072241386456302427663437874148464975390214238137458581593835137300442208027055174719113173523691341907435742984006029454353604140379080984868221924135606130210618289835927850469863418587544998966379096244451253917810108711213183290504645258916024140318504349668444064404675081584587351404526685517223272981732592366389855014864051052446346818267899786837305421445627337323008903468055646605099203771638145064361735831601204884725729578414787854193073972910292619726034578353951473354941613767900619655593602464130005154261043465042805217074167079830824563776872222539051022921277989145368414349298745561352603180280973386001077910223966261650810270749017768750982976713012616873734140148270724807772986913750995026422967889672931057836380187069007760898353704235326977577485413555576098163075854936363368247647260173484818673377693968785385891090157575141188002443090582604514892032818187296670136162160705766826473249374246492299102893836168857592079780779598499042173792384043102629037472908431668677953191726731289593144815094407226442451537322808089362426162499276413775352406652113423683914667523288996677216752452785122931181556505627403785574074270830813769320814530287723803132285506707597524712708462820654082479572781478479252742149498723844206683055508802090766427422811794498319992043350376797009626617234276703520337530906538405289954210041434186821733628286819244002994917663166978070872541053622588819999946636221197796129812534350160606407162949180592850568522720094040944372587176125482579616687740543084736889721145618381757686422051560193107289787399851930845543857027361974920102362026927960635457811143532782445712346283398929845911731313178336574206654856946864636220714083296383628673091335260280912498224403189934147041846825489748711361768642972069240357236555212703747562345865075931776365589575366118048962781560329675562157482922932439809935032186709516272685339644973718862094104486756188025526740532347521462547980058745004397335919948353661588914090133147111028770857506972015058701551575825043595718474023203425158781215008054495741866784111932615560185561030929950379539935388791778272449149246775971295679866543956293282308540837639138935258374319926402128203285342254878480715397642162931868453486592748757579600739492049097999928139245647875370328545815699418356763723200591325552583111859186973258505576603123411606298565847273864237661554385663032913765266478198787089530443385233323124623252141411225111307823955242520119786618064686913010909730969381746366440300677912882604555100683199438789940952951274056884977665980598123733045261908306724771760377763527472159501970238114767506851393864022371403937523392188589789622968891825867725347252223167750141810401302580430564066639517189203083095297284288041868218284889086054188162374081255861772408258716941531368029183218595225114517032304044929691076251363991005274019269149516450916947424879825845230350252486260416617937086796768467467819657059587030582105619216223657317107430444706969994635890165419226794896046466962058075325201827375452532695632067642776234264296606947824060373771516480778017151008871619971893824944985782249785528153571474402630043375112959543685575798315122778658692949439909641298546857894413045096989623070790201677283766343758113045299603977185327161236305755354714222937719725926125966568765530018343529452667626423051257858638097764600938960102772318715091791724330847313315951281754241084664893743766539856323871297570841931495348910697988622228124265523969566221761087522825726030600747175933316828352877680721335402384539171064036466097728108728924583062456578276825788230271859460460270520539107673610980208912191966349298239360721628995885277782704452897294352664380277991293332928440668956447158280484185603098880194012336095668662825190627462156471940692691587184665200844625809206009118143060260330444188137469051435024622066053284521337536837860742353172399197220470830632141466261879168348689987052893704477745742926023962805004172823672731346428231832093059403149898276933124391661216061785613940533871582681319410067300658502571619048433585855792335941596163823954960136681157641086282410462555762276097605038873528347195365797194841075888413782491890546070367158454604623963724197609311273506599136347007645352423237348756482151311594685368953922787934105634960185611394428337604439594331839953954878577315372206074067826043641732481094847893241755395672702923522525447663648948819993947153668503447407130215281089343023562139403368903342476286934651608405478754103056084171663351427370423965413470120440428131641543118858986431052597054126675548788277400795033304445098866229513252328239886866892866338774156623472555424762214943444382502566341394770528386633935449563351264900433163743600554558743746063473263259850954082364530569135712868436732714072685292828725745681900485098812022227858469988867493657295006310507093189612547643507513607087995681711475224447010259160239026265633654268008159887824300313103743596094812006688886678146314936535260116573805052383973341906891814541557796617017465955016286905946699940101229831288406538637877133317780730287020534659661013336652308134420215537522313651241379579514264506864362890197429358325506689437622156087829909069863663347722760492800709306858920012308502228322588363602695135822186497098820456292128903261019040350866933094723345640658652527218763079062520790739252590056383887797148643067243421202765604820353859909902529173722280973125345049395217650163987564825840286727956881100716966905210009785562024156421096342076992398494448406021604856360924226065244553344318116962632521894919641134918273953008029612056921382963181535459986492567371284778423827375906496955476224774801554189433553079336052826798164193241458548125921739884589028417587762390864683740924057846337999495716586111218645438656411089212995652787196020447328431844715603017205697302954828636829498958722837733122244120157476804280675711191314258498897275940757900059611562153692810248591494140751294826669276115712703776305116531439516956197587434568697698673813507373418263282439278397886779416186645498491978077495921740561930842086538529914366007917861032375297757174566272849638047966072469388856634991631730734856341635653900127177760711133655656915444085596804249345708756126168403473580230300597119578620532380890353487277900939256274532804103908127167898085618424285850374047489516977211293711827898078477897799350199473871344823496010728925924481368598578320818381462849344964777521728516228528569273127066887664131086422810475431546482765311380770729731293415770477378087807000663469098672105511324399045741533406771556650199472931484119253512117796070438153943799070269209828046189645493659005719288784083524405698264052876668677112038384458919139891720415955308613217812936585445969277380051901439242561387976890749382329135361720915220484584250126304696476013576123802949490729383277901515666059167561988542036211533053228180040021005583123994950571142006991226041863111126229879829489096106764989179100237135584458677696558900262658651142096262573169288437781605666579505484044651606900123104376312535031712798592945899976941791071541724371268977317149022515659998813937564929920444815101569274589634589493817010003544801167964644426207167315089629184954801165787971697325725388976752897374305280769295861531660339569730272961424565746607005030936812784022377306457585667606664230319921432578463475405691589967558280636054240943053656795369371755315773785807914707880314373934939525803493306137941726688569528961057449436043882033303303291022592676767967869766732473343016273682044218050999039586461870679175003500842455306763804219089762080081117373557911922851191580722156428853861572131160514388994099172559680362394894381676278571607720961031805626359846533030213782693278635925492803767235948594760479739162515982764440464669649211477090037184379561316874521997655869836974816313484662510108702615830770603688591976892888153559335886538130005658306765942745327046917781956801826464227002710588438452365239004390646447745836235053897974971368189456641459714645616729391459821285171794037868217906442455696568088182127512587905537078531283677103974804385364175997270967301570869485282018282652002267991117706533311135541797564364295403830988765723856841273762526522775208264487792854792744564022741979111489676556548192912848220272283642177555530342002809394803732211561920385709328388063491244499698065991391264276975115917200877165992501624577267777727267322108916048806589326828748687756507699149801876144515104736174327172339736772732375087563401405510983800666453519469941133520349422559771843028621673212355142880559781156129378171611812688436897930117642445168377678866014943582739609910897239169653957949303526328630691063954782696716014102663131438662313431836677422688666343474553213377287372148432844596862220570788731169030682619750182808925256437193580867765803036691560078068808567621312866254068293222074380848732657548592991608586789875225022319957667232925458763743822419292532796596607410833710104722539567436242349699374010785320852880711242501000108911629593344339619015002912008694135557022431780973634942310849305968168686667741978151685106436838343372281241856250039134398471532621199655442405329389968514117232342679053218542998458791068793211187850697296848830451329831250722104282784405839710806191032705315615687456225021047460661400582089088015887969201677479580840581029924244222062238514684043482812607397475601498839099396345685115039244466118394796750385861834189843191157771393587480501418788770997884673031227903132733403274941753625383119659509099482193809113682624323901115077605918989530398413370760371873294522050903348260938407176223875715906012624467783151544808648630015346996082979977073013614819115801664267270202770686799212687065993526643975262606843067652653094213714431208153021411938071171066932840782482910775921823566422048617815723368588825664805379873748451253556028246985828753949451728923952567869163370965422185077666341709343677934877802956233955878668552982510829837483025905676311309662615962820975221670117040872319051803339628829593380026939909335567915782908262274390399301684871331575393860469800302406322584168030664539725162142232547674630505069048944968169671317339946393514026356342628996105841342972043563348972052587394628598144648632564165041639878578547262838890177143930776519177150194520515448929541596209506439485217012928902304170306520965865650003022743828826196442723691378842051551356082516686573356960799651051844683797302387069967102065694968778175583094356006765072991229210682402249738806603506864795074396822531576935846972501070137845006300486004129865777966543635148496146637686832711404528619996846730580631710617412076947041384139205083860042420062767877754090712220587694586964042797172219641172568929333959530088690635555450828088828921905932114697641826103802992335427449516337618205586674571584388507326818560383518817744009788078213551668473350517427061174799864872745385882920718386501788420249944926890289387672488553006364501550471741472057782936386934560242212301541140780263799542531598556682077206346787597955755130130943497352625861618767705716782080579831484867630320019377812875974986096419286949997213110643513691319823495895790816925235010231793884101014490240568101021126765513452617842699563043314952840587802508475636836508879832635196781180539012535565915606282040445638134093837447376495825291196595584330701794671232167903672578137493450012154539543863918659922309142465675456994136956560244351053026038556907641536408671026988755983725361317897214505123542357231429297374073461190228000687129111827194016924672764081639027124722277268913423199240653545444186895862749557434292027410504309111179410473530142767567958870042123769731495754865775922191922550399637846523352616714123784903294541019310277729839421463442042904455357710283255970968534530131232537556725402676315203953797896859230463446667337874315584581404338678332921712652937207213046817850795990675161699218415202531265954371340442503142243022126764382450469482900764470548016038653026741620423638671552334978766247942765083241821734791750033602854492722045756360592297884402935541011791861740116879094084429730319296294466639017280566574572290527718644843017522532539104749622308057721505030352286649942606036472319989572713900290040372365765253946272588309994246857838956835872268228323573394712725542956986437168040016633132138456381073790594556539730293676872057031678134851317125800332035163937089892611993488652518111467492189836360690202488898465097329028089091546991500995390945292047885678434500388297000303860720069940640552964748229909963445161461477410452723385890715740898640146498803154419482365021953151448026044907798568180878295215946152742321684718515821338715149448071042362951564204671578264052907550507018420012313356224952866986220623722892741790202129759592972943206277389768901255726102415352810521749402781791870567467013156385198910104516029011902149102664895926997618395076499137332579102757956944025727400185123527472350631598640116147915853989087172436903007148758607463816794852756144333154132507403637776526281621382075228102799108302002101030985971490270789539651103206956706993116133805109813901400287546169044383996405997507139843246811101245464847144215944637041247424169253794919416475030724678283618084033908823370085878600765772240324928235954925119776931256419899274105836070054337642717293332251806648810087499105488066126017398426830061679052645283526584210810440862338010757635015247166489718510928482903608820473183321566795120387958148774477908244754841960190153470518940930175179575632867814223752265435822797668013653272384322911289099060606814928346032766686831159282921899714518088548013102007709428532053995761627170703296708855950973115095094727772772528632318430138468793361180550909976525578358351971260917048332730828861252695883891596261730784070457914670304176461141275642010947289886821282398564213036713505304858780732917504865885285639855976572405718372865790341991366996914557333297061888295203507314112392431781213153503061580322503015078996527684559886958008538098997534206450431518463333686776567417935624732543322205513760798715633314289026410567160344361402607838925672293691534347131818439689986086884882288623633293656525397015238712563079770845346009080080939831690965009152901514029835070402647741532465483643216109565034502672711698072305003478291786333421412607591832535380534967647510538804957950928629815010108617184443036308666041960984011328451082258118302397752635787550043411301894456463489957687831690690350173594760881987010174778065491344020649720971726006399365370047111604923276645140448327097625577240852496605055340873649373668391407347486352906866969549369178934525372822516080870047676716834936504116387367286532487941288225394597203481149512010121909906511238295518745884133575153354905109289377615704719073902318177360587254147297323297636453464671325298590521175626950739634925851181069850483112354687305722847319403644145054726906744783579401390307240454825068016424019238923204392811286602312377913677031639843493507938878105665267590828071199760399224473486140329533913324965693061893368322620329458454938004007494675787626300960579906231678169334593620972681006226277166628346887501634754938273075687407964854871072888834639327929696843132066308761138463108123879023160321175122028553501455065604893955025018102256084632218242190777099897481291273154767455808167915789653639844385697778460516004490331679763677539357442777090163727601716380612136830290310417374984332589859518836702381922974150402824492615802832327220742941498295590366647015025989190165710620681921402514669355628669446196388677970906605780369919160699242718975534454756614391306967060116048709163183886282869768747423817666196706098612436205380115935493201677079594396223808352322377024199320824018102697152186062119079313745268990954094643225455133963864857771655270350215322759786075764855817974496409894905148132482249608022397149091206260756133143938234420165665232711439325471954894607353619729055258530979315647195073486835679186278093587638228152304242384965425646082412390169067781182897966801000390277123118256177794375868984114542123506691825413089023065712444589058593651515444167138935777279961795282093161317805402957775728437978264937425555272726268731007286342549692181547685682813455708650317485353310893200968352809258945277530875482061274199558110206843179728181117270368688708634072321262326622959423221631925557444795096081898228499343193110689764965841162582720282252532210451460061396640206653246206365572260657917831416958131115122180964039367246053251435567645807517325592721215581240557868652695583556293542660802768640369803164750817502518114174369764498013040202126949465357708796827386524844670824605060859149146208380948006158890176641636229997402077146382352564933246474533196832072195992220731197075520880411536773035315652256758037123635829075217988124741063911280926888409522694584556369791309031233844985576295223163134890492268014626852155189214522837300507935751582886039004312610766178349238574430666095994508617487446094607517357742703195945284703224241907017580067747370794065323678714199530641211175123937555676267925599425680667244639642568978731411211919490691108758864295693994063458580107952229086373363046615896229600333652950586179093278097474252942189401743977706876918742109741282982137208719289215250823393768826679934609559888172038635965657338398893556746639519442143705161473094729147889682180807940375386314032954372106330105928845025885922453628693789533642168295210656650740965263453857752017330375899634523250240913223465889188353321077438344348212676899866142951136675709820026378667105063370532581858138540926244749941926952340860179584122576197291562338656197750391446859585803205779352989463856984393443572886142235257304476181674452716251063014488548535997667402345103881126386933185677406333035062840888231990184252695816186395159209061526145370809287422273061078914539766893588578111830354036956768884227463363685440673039875215509277078265564115409589506265762544932796913172577853218169891183064319357976270924618704217690914733634674781391281624637165160896430299498251086470035604206880690707094556445967340172847070266198007846246160883857575104328832393572981795105818206814986121662943463894906292590030015483542827391955268481472674862221435067430329842804681783785641108819177783153209421306180111181603508529646210131247482259642305683974255389859000745129255631822717072227483913143557080719126990124912353340774326195790284843053691893097717424947070700122369978727783720463956194853598684808303699873104212968798761214915660932776691852973280018571227214877142388895897031813770861507700467420122122994920165695631708920496157785628194835575714996645276514676960090623772100951267654272044541408645865653169249643856306348130773484712817818103246416907083966437605362753593935215734807818210108635156839060716102031853411819200678671494484556248965364433914649134275631857192196850734196456668342818814086459339702456160971131606584994896602542040211912795860807628549433941259755546438847610898397264067496046084021536162492624231740593961365997086583777494384927793947677875865541256348627445736990137723135909697145447857869988720156899506744347566472084814713987495207367485227353702212860413214991817653738145847286809196937651524890750175823156549302399547615517714521610564397901453806065120935988876546676075080977843633182629274335959896549111055814934573762474743326150403345233076121804127104177341403780377462997262729809050357036563592589752272228335406868655067231699003238198172667247854664233569230249210744066876961907790677086222650953551420467325726047646072593065738714086886008927588655332645653606326621591225477136628926631019511041385930547187283417873172718923598865336932997033449408266649284366160858332341498601341242868591408501952565378695186318129625910915280870539881730415450525974454281785582343897230824952674088714039599628524973209993195535934129559987248334622482754428186810294653226943936387573250619842347692996017348277958994157965711945328481899557631886769357773314312724419095611935545164789939570457319268925688010676695514387372067604877997329701685492433305532399009202207942287393812368268643543681423371281153420466873809663215385858355895057617327734195520589457651657300786477358038154818006257214956155093238336701404943675804718874441812876945796449969339848584976360869104810207380174338154963434172534793790370019452018449361019458556812751123805944248546820356123781235947307111904059598804701513813346716845403103536666024226536755088002932989079094191834178301697200286534344312044229975057711512301740315154585250984365470316410867035327526960691619603324009128422805526092628798212006217128730719398390500535675887968712846142809492129443726501894120606196607155046371537089898794665196573068459144286873423298640085222799138266361162175020997467734926148330249136927717479543090065066534193086788758199180285928319497572085288968155018285524421898649607623938790911783418547337901580025765479752374556211228012767053359282390139103197170377089980886025562647963586357198820570171743880858390102653336403209800906594265079383327437350829388611621930808931798208279992353072098638338861291281546941385381734059598827225888368769303793058250733571377261086406119868107278601385871287326119752828665152346577397131862036015394534629592148520989394459967970635548485519056390054841229292821911271988218177572711258467895606903722066468676787810991048468955903771517598099625838881758368936636212277566165255408314491153812111171058485626430716155810999865044074986588939512983662269631152192679283224222840594472249156846554969816781850858467202970950631240421534592887114048867250366930552858570143801768518893094420133333041018749469304611062212092448952059809578430409409097604360489668628495059391310383482476003636143473376158341276868722394703052299011798858706795630608206491929831438045077638555339898755494729921253339796617130043379718377540923868453448481860864796177554030458881952707819163199230201538642993104034458367671459110962795715965493292075214388786881192711789301922069556740978185223410206090583940680258820334983318723365119740710893660228110113349138036186629608817181262584063145815458638405798690880327018155153721645668551081034890530231488582889491089490927944070964081822871957584139026736169229628295461878597281851158717883208269745373546055866413457403752260905113896677214024399527550662991270834218128980096450526641771317494246942175823058971212296044763989564520649238187684710542221950757451106657335824121863976639718567474494429219742771000481950056993001617126101284787844222590947284887487420604428154917253286262011693377422077353745905318478754437160193761333126645387204027464251731898256200244430190760884744494919820468105906697943163418211734090322190135384372461251490928392377248721120618058587331121834352258060647497980191138547168206921615533747584338732154767095074191045484957310979474622884549333378943885245643707583918762978430295372228049022534838917348015984365293980197828781757110621255471417752408752846904647566562030069760452681598259814654769797008212357633704281151003880020740246937630878528534296475321775012048938335739380421324259206438628809955366644902690384338896562721715488003607712511031226568860980071066603186559424290116289768181335906968182542359293339314471532801162227098692969975120643816392372370046992431442423925530665571145225153609804021465568107410824914200138439198949064222010493700326657193801105037442165210298420359571198422164893345259479190635996960882556451148604802067986678765166905331439134802504322222099017758839345032488959713876352704611357124177563775340525948171727433340751429051449930273671689181332973444671143481255131632851676396652578432839369422122175358848586374180715192047666031396688820607353454133048897550743273664293852718490843588942282483676261565477305266026772160370348253761619142280649196476610163872385061119222557548861910847814489982631099428292895273505144694976480106424824671788404834715094229109745946026268193261818895305277377710476592739278232806012800189296449509283729812744038085210820439614719125134705660558542986315009207135880393279567579025392578075090751559235420620827987464180445606871037070588989448650469944118055974775184605656101499154555697536010024263486991456631812230411068036081833615273288091740660610616418662277441599720566554629860959152059478463617741791455811730295794034072890494539903366103702689244287787971844256485479921317879207651558839473761552425328601882218415529330356327537765151417828363064655734736640107106393731200728610628318016663006022978538760262676187316635520103964869468477430917630386007974882284192593225000056713787199414783032476248735178725955078727174309959273763474375162867342022581325527560250049648164636550836556654679498937156341046972938788802859562286302921934799468170132015611350377912991876336375595374436062953778313556716028203127942535700835788788465049255640790066319134027798947926734726226691213699650717517560633640936273827344241520443357660919031650186038149894207845703088705746253726277915756043748517424293090762006427626731899065134085991205158053811887135807198202044290716215300481936466369215496213437929274103514359559274631544332969150497397563512845822385031524756232200204271756603796852083597484821316996391356646162096133185245403467117809232580275441403677944781937027232487968073089076301354158554875082787893622453925155450023853860625536943716479724069777260144109195224900305769987549696500393796244111372817776305574520174676394408599074399905818787975477797827096400382526226427475794927230415302582314696031789674345792355480580862105188817834511361768141162687980150062002677640946687619813043447472053458492586317862734401008203843886288145863083037228394409776778244671884768785086547650562551017393486198221065789033029626779089712138195052917914297714047129916177740361907302139315122651642668361010305498006886263413321009525406196601411201038928546403618010309510168505462004700736891847469917438453915577697022769663384580658116763114971064829594544997952044415562332726243541001397152088383895881635520378704885807091519435155151543720617825938516278511682592692819917553690013265713216172067531137101522115812617053390857672642256939454494545052850458993130017966401738106764262989153667543359700274332404285061712419610054222008307112536097927595894119041069946129104583320641077134080788051432223785295068713413992779363731624359402731974221141540453519814814937002902774774649881627134006538881567156289512961688828751025811810116912326015798813139073205385627761538389295737716684050641699422563772396101091880377633513111238227231917611445198827327067342861621776630680279460023403196403040186885110444900231951400430702548931416541726797704431146797359034410163576845336514427404861288955407897722729901839685675903563538269172214958210230011727904657185867768267336597261154574926153059537973434934692353960081958449751766205543497196731343544635697836515634227770753672495425092613340621069536695578187333481248519037932338036587877946851134791943680892038300463905874837776144841211943251564931378576784830655307250793474897126815922132174617030353057033650545484673679331304513480071789244948057302629558445201895291657487970857817775886369824015042127434307023861846671586888192622975640650716847858930717879374355588952323643698761745868587530075181962445252696329480351699057759703666532078665539437842023722592476593815511986347191604529142995782105630945598054443716620998456342533739933482114479964488516469900442121159850676670052505051159660974402552547220113219186246895606853669873544038383294198145619243488485931392009176158471276651559051412589273938165990619868314115147101175044111053269639282201609001788257664979715893523425017258672694172612855354154391780508804798725923129486734747678219543363083412874987712846546114174741460463966579854629689330794339433048756126624409550968803534722598732460592303951270438138655264939215350509817931941453511605148970928672410851991818696895529526657550370294175486988439898995533825975759351057378461238154193418768739745342252177387081950779693776016811777007143270780215535121856245937982239615167362722795993080524090440966188148638352299350546188019844916788627719464051410839443265127020348284265942133303197989942994905310663081661061861879090586681125108095468174844580609468017037821923622338253575064184530480445499142574373438481839389425477182418858856565956321583277810610620367366278683778129802082301135187054221737929224362489611288322998591587348629019180766399430530668918107454206679776376955767650771355289903477862614231774032388289696152591254672103756808156917116765724827091190587046472070043665449757015663965047615911887340339218933866143948877841309694214969539177222107203522751905920490003764708160745741512790979682025467469091431999488560802152457682774752209385299833535131097601900792710775992899277017730840147989960152574424722862498836640959364711141989577927803214713342166772371401394264757201181391010284548332268796131690500388906125043016191747614297169398116497506916056265438562424668072809255990524289193778994220207395015092816018036091190476856302041198540728260278865913201052352168626313931248950092042145431361729176936047085163153638805521162873057484525235875755020113989639105002072474471712527382754358863733173725948875515040822784702175473498220796910753514668468555351898904318366592925035278869869966325825807935293706177396701739077870258333279330779866927918147701064653714823177809135486270990495305235235652480818974455847438780980649901689306815138960570046685107064019063563472073305200255933702179085721732637892943914601134050985377291984297140556790308315763623447238328446989383362058775418589541560107903654802901262198212738846341467133581545980973877855668963350270062214135254902478249248799901814738502287507835534035711281073145483004305053243449093616727474473090677639231250724543445293447179053196815832196388400850759401419580719685861945783394962291502040248542691944884079166591080690345332828893025671527444657840696087380498105551007366097024338031696016348613527403026767122116388620250217843168937224007494203124201702710907317293487091880436634141360203991365308782387349919587416918702510663206274457998203014814876279243846117789162034065982399783756017600467370181491998206911970324713214591999135645892301352225062837273769825264881067411057205215061158100656842461205693591091691339850222030650112338147852890146778246473012424555403077683447481440816086842102790254511568340959537180565046734070054991003095245056144664817781282340980977404086714316183118312243681826962641135283820420939908092715763263692992622040999893188644871817716451950173469948730754999658670122993570822262346196493766368418604402160403970279422081942460336030308059394004848745625754169286624157386253226465726343906044137746576774119739862448397859158591507361715218466741394343750950132433813665299051512962160306721976555383063992384352708626057172092296657882490352421483175722944843237531472213304701459702587019643394305253749400302572216194608159253908798419621151357903818361101284826469602461504326807364822221817741034031619178334775095497841016985012810025001352726194021151828618762168138557649127102270034043744271489411060682961586345066740877685146991438496230255137115674023852024335894354951498862804416048950793211499221265688919920737938495217664037995255782027508949563310988196647285189003880388310578850196030943175665125997446287447332789768039507113095128267375529020333629166932713902034904658177475290609861935257122852581598720776235743577624044840772118860127816092220838087207762315915395741292805203354386082581687381494088005427706708216868529470125550563193613020888445664652324940505328161945752472911247130308839272881447978173337203617081345191999266471974914959460717432465705245136654447527757991362167549165138634803244827837478201567222979940205983692469121440093648907772072690743377876756177841683539891104889837912086460332300960091338945974497943567079353347527194340188923129177707856900805033661765826627840540732555598671184602120652555609478980739812511657566389381827370798115126693295554284944999138545841082240093037434894872863977225957941457595728812130747308342135491686700661544880403336323316889931713116262744462259524649150626959819702795387400136229557590667668016598926914941162523610127897640928871176879082928421050584406858204692077840274177661725815761252857452773695651322805811025033643137218455393855182760446671845194044425490623419101141064690931490408758326569445685376397967268750166558311665115929223148745095094167815227766744873771395241188903670673213443813457251029653591898974591954706769555477640425128996144032962440112489811985767038491340248888269274874504303261237702693959182010740757550078516891724916495944431904580351316173222476100404576194190743052451964830583515454303511939398101512530052085776729508306788022681134808358219421684322568532611261779377029764296428784349824032253349031809404746173975108738330940847186068956042348671575919940826784034591153574883149879650577942926829349909080068911670266185986115944557719051632842058708934232252206468111737922297050365398933949326632559121644874287341491781596559730684416063987568246996928640392003272391566709816212308972710982019666714393683213073032884698177871872527462267287138689734614384514656028908329867123853216029635113913970515640259704764352010832159085843880281910153987451022974215732968507013715288057475478947509787949149724957976419327129975453969446027927138317392141479673352266679562941711455295912559066250558208887338776493084254513479309935915548758936975357660094286116119248896042738977148427909990679186319277788739526341799931612225952214553705222188204173987114715564937669171874159895512180850625898642335516668407704909648089274604619440296772351191973937015108992514876202246018737076335041317963276637583824039693627926094642136541037013334160105199980593963117560271626862630121697135714086461089234485263111808325746762697684303710492953446493228284751194356038371434713743641245532727760228733049131183449153121101503678736938198738067550943026764139494603374664407059290757769892719774468523967455010551602215661171941509810792193289618836445414199935105609855110978829771303686717873096252830629781848309276722554163453162763699250427097088280779321306955300302213343204282144999785929364916487390333051206038891832087910206235162804796073165070682807326312405542535451372569006209646697601050905290765925359499649456959405818094486531625190012770832384593234484743033332100754827626017751684856847406087459581428312738885911281507240754540495156296550607461531168337951069548468707601405745334665619956120547138789847330113053548559423925772590441852991668611543553747834940395394794821888522171795205037206749355491978002274094798688060176777758315049439773753830552589385838898526795466085926483219419517952951400789672321723265695072860613142001581152626909513961974870985562541680837351193069714593664888901840464318701075319749853194357883722751186442362428341408866872798836420922490711578255460581030389346636787149985572944029632706887029756404456322307470182509854633771821844285083716553599161574030023059869960120529330707419905527630156849680524621292199871601351460777110549766918801556040368550973659416948086550476534376476216064521009921572454371909731849908155761946561530646759119687684636575285325728695682621070978807661034274818885569033417658042477686696724856086473837954759659235692203404938709116627078632582150708377434366165109573323129339955678789853205814833419450140745754412598534883415189645694169942681370008411761003211742149829222815489171979545916879522193846269347042825933987255993558735980581534987505317848728751126330789930915687844492599392506190233778020463296242946139995457231596463646615476622149712711062817983903859753198775303709995362118526536211666522410179736492948799703077582634352925445098019056430327093111667778246062712864637952748065875626976795953769192914477147518648331224851778916158878173314268125187289996943557986838308812161403443019169495515713341638670101844593600862933069652656568592023484704161542428009504556357224255464834372174628221751258759561914070108455365157437484101921158597479907075789869919449317403072480479482964149431703052631053564874734148677748383573889714218227426366952206976800408763979083416269112809887776108446369707914815452893402202836163041575365142948402734848485828565948677962502707572684206433393484080687392522606237539814938260479035018117803862531836993170291104086689802407789097683865662816100619165966665641534203646244860455202927309735511695605999671065393784400048788947624767732416002828866848145395201438552093988137934625639456109886064027567658141868563099030133417974172487210723323235719590396630084917680029598726624436946081139413237002667992371798373869048328723297469343790289534333969316944062947880693153630797703851153646003995325761903068931986856536317972658209774981469096995902749789751303129811081962612443315597787340865420374702985054195018710886826203434427679780716599609629246796356179784387826137359800194346633741027491871188454630066566348102811812092277058979668473240004723740662513015403214531819883455984360006770023529437720713186470754470787621740946062473398837722848631052843132987186572029046430868271915130020678177999280429096274826317707423503637980186977734216720176976567989225989680676995915901847032304241932920297801371923385581782704752087556242616797127498347598338493342294420825582917113494504275050084529248195786634721333082343792271413438759511276239181452722095349064189726354418885834186773131646324938972977495344989065043973807450015698687892185371348278542105278380841652576407472253876697699460206948353949509426059707116463020887324013613837459290506870165283683044040109727225998132219444371481838598673687424422691413044367677688042951508168064424085569668228775631424932235959863604312063107407922393737981331268271518202120913348371092694979703214350463671866638140711256507366964734739112927648256586526477318878747768038328044584155220419088619905116169909512520249674975020268160092758824661695431989765844397256708009065478067276083513938314698828392863421088643630509953480570510484746253212145083055006228421078485814224684284510257858513406569452267440349907070976066608740587453917468743245017747841737509196612382654184979235041236168877454376616957948603321835609172463476019005351895202982312662690343911035924088013478018533806813258632129766414324837392623835034331342911578541078747983283960762368468468650781621066503962125358029342191692292389579384385704437723975130506884607669363068791398030179535703550703342576777930735100759675519736738587982844338192883149499708076256739971785690838710237063502416342706561823315363402555540993894562427719874707722374226425830009483890604006298751478472914681301867207907640989121770569004978104329986330434098071631263777375049960015837825858767575113622705007459674629006899235301139469962230971593128360368666611934751428651769220864430674736371360786960708111664891953442197499427805842090476709894301227815803383508001761815747701538554789329686728802779622597376264407368166491137810332290279646181953679522834408484008883257044318180913882502991690115147321043535749030387536084414193692970592545473230223314326499362637122127999841006109766210928241367333881427592349737553137769661067499379839655338636427318837709762932963243199366748080618889636144411762185136735690209758088034330625012088739714458857284429979968200269541176708311437192868894484415937017103010853024603523290264417706362388203401910548298043504615476277407297384662526660931751192835110656126742049918876608942174018125571953047090094206837970701818303723180429069718253581064889116389372675060599511391439943763009480028533481408083255754269584083964212007041730758563290471544734745922358823853629586374581696227331486127628853287344312639821190319305987607337182512641511620790724566265930546010954632294393262945571187444527059797021536132439375104080296899819765751396532478713840056815925146609844592403987052456350840392464988208828145445212071607371847235625057742925709724908320176580966981361507134410267149338141538680813856293937344427033214008004643237156424580869180346761423787943244748106367874829877081193894132836497219321682689318627492740904495681156141227849928761569840443221476166999377551762620149780525646866191601019384612248234984809808075531097457408816930480799157780387949442697872544549313204590199768611466573214660724465671110131421903534498398689134424028751564421223868386551947300086694635491439313518796012040087607496116797572596249042971265988495883291927067912099913485859870707020024057981775923255572335629740235466371949522164578066710577469578515923029574963073962864840782988978290436739299784842903535765412797980956942466492155049265029527234180067509058257386170693023710132264289174718595372096357875134394821247229313851973339918601652150845443788043760960648790219215980837332026759086836151644918670161023268998468859169225386083494436196714646242373071906051815187719721790911427642099170466141146156935962819761458580616874103605463731718154078022473968151330541444050777754146512028985922703617756607561093125199449255878164798398671417669974874435439936269660919401150855068043421317774781844366645730523872623276079127984300298370534488959575717389213262903732345588715928355416153084886487308378854376739341170172800935967612927114594867418681385070676955361232853529891047715182608505446022992739146093278959637160803052143091834063563481297283783055472056239058732545117113526731837513259111299159601636999717852885079361264197820335027962347999748677754989908394688142853613310478394230737855343013828516949866881430432174401253353128649927734548977808550133943006531113515286669696370525927768002700539583752060093059683565214092487230982724367231598973291615539280790787210958241464912748488545283172060256695378425851586792432407033447695003874244209512683277795673625911046692866668668605114228924360244078403997719080759997874167042110360159701515862870917264080727260532790557543254336644326579650706070530326836403695175256372962634957910338551253255236275642888773672517139866773276916361835436050934895160182412069542489906753189925972347707272970959449859449569626498549491649534969905462509291528684244993689793318641047374937810355985194923324267196536829932749889769680884426641889607747939324552699780372924993095070962878112587370738996818981407675061145067027865659522314642557943810775765687329960797758979832145538690397535280989255686228488681914442704070761532916697763054314892545359086638646654384103410547497324465603429899322284411342649335139873301430417433438093484333498931643286736074255549521438211874184338335752871834407868009470672220090366642872328862213136530199705910839698979852154595244737457605989323239483795297306057020342121356354387328343499936204341587961399002592841336594046067661537109531915976483845515723678632778738841359349293925299746021935289116974850538255904944865780423257734139403056456577640287583452129639836298776658470295990373661132494555269562598770326086346333065419894626592133842456306964181507637675133833541847108644203945289118834472306498410236701573374339035996703789931751158991147887754199346525645738534729484575640241709462812629302593180505459172810622060318847323082045260969835067886933810739768242840037906002625015209449472632058606355437242242664236920124272946776016439001879468756769489784386870321184058958686030919273642727023821453575581241565298518626618970902656457339671996214502816600122128858698947064189009388400917640112632233453117377332029114015276997625557697121450178750041226967889663884645946721710365726650025689974013867029020624851351021243383525962547941728671928525747054893942857208888542121344402229621925824490968904650543883940300170720897083906488509943742549946024110289147979136157574613888304663960100810283803134840811806692866284079234606930367193646208097387004382392364369283721131061678081397611721868197963924176144803562683490346447789839158747088501517355976156958343616808117899291094551275725367784970396086136117363158476474621380481829496113160978497389605383085676391436564147487391574089798242934026566145668475451590818033710364267085401390964227393221339826502069999166580052861995932123605746922013472193691216576226076883987330858013429693957709083828422484143782300114155929857348202396482478079187805245854502630837017777252594775991823529402387149462661848438975962389385086434976339194473846347971783829389472690993055523528120507270719347155260340327262562168887220760631092415687366910775452257900452653673534477825594880692666920226498391209496969294626627150092877176534502765026679072594689142182978499321585126459148042158586847369315641657845822832128753815136051490462760429358190498312800905261730712468972066077062536180818175730204500261594224349411914754631117942432024130517753534614650902490097894534495870047843251530810014495732801894740623033864495081446906585841499957958011351711473198270376288550730038378357111326199843299153197665183921880121677033291153556286924874921891184828643618510497973612823787138947831280657501948219446272761664008426438167490209999336521177506221342948037350856358271177863372571609170872540702569255619189281883839012342690240301536245746331724092159309780327940535477312771421883602325289747046389304973387958303983045886597460312046401019587190841944625855404073975381109492604576973940524934996443134367487324153221682148793372344570090544112606914255824645621653603476771516422867922687951003346636978643714587894373703255856503114192267203647019100958519631273713107663832143506120675018016459463301058588001558721547780743698142021300877735503104529140255482377232504773657689896598664936555319703010688919524562064069755671239997125615549565989807032750215575103304591879666712871873730995407329427840071544055136206327048960923727073680285816382566641666989645511424699987317713180701608395267970834156678010158209659802967741876527047708390951692296296725222884434189117075555310368347310999842707114637052431503965379171143729959456648352260014383482305047164828468234932651408898481948152961810821421651811525628268614302126468768814921643093859981434872306265306470768103254319158647578137841892834524769099457777186202266185247511300448410955316171038983828287917862500466324407628043289734869394777043992963870779307195834336035987313252943879099293604924972473962420803256921983108831066307613224131229582638200132020613833513715440347059894083874848269193220645824586442891701275071655755518340203752855025937303008378756929080431436460107178633784410991927699754054430597827861315637048161259871551283446811170316316901658019653130551391516521868763819825464708637991240826996596226539066222259173608109712531376737719082152361860806665449800302579218837830201566235834736197578246489016269065220503061681535863160589246440855875924803075635773479137144683529383097308646517205214932312128450931728963787840273800056796396241884357723753134667828299645341962236232641429719734181426599913527526989079408411122243758830386615638349649590029184305945094642087570216499501293925501117552827864829922226502177227486182976801237117985371323951428513099970783905361159152797382685037034623748051732355746280998774743622444610921428485187793951863763845367361042309572852975955561303890617020833711646609410729770244073547545132082428727612581052192041046154690646631911306653680021562717148460262463229567600263572689854233598928128519358577125033389903075202822111543779823337510943311875817481436720926775309910477758261536120095741174133854306730169742387267287871043829998435733381581184032655830229693932457148963409722816031289409043232731301354032919997942152316941023228716721040118545640163928576191134969120212787772960976678674509537379341547840361263792931298720223658293979290562947627236652579597242691751049004796874420701945524094064356622191809917916986418708027099523682629925776238841221844823322560173785105665249624109697608298661147379308695740688215216207260114543471051269033546418424105569780396305597930470863947347476058740556054479486775974199761356664298965130859451595487760911263661349351780545549894534437646780100756944245522457185318065561969880963278659517337557515874599467454076099474243045030612915482713905372128226758064625476319240221108695577454720287332234629402379360862995311881744386253421510288401609717888000250623086443314536670150155737346945682655435227738933207556824594525411771202757320074116891787793337290343182667201122256726091858535304364589239575663213099573349437006630782460755580854747686951876822290535609451417372644763362515869646887938449830564456927764648444114405892490400062917412955077369080245439002574938194186788673735490738737654516029138776174754305228520942774957268440420244292371232310438205998884768309384643066849655272375435768542448994710312198037502337190480596132857008026923022536690777608003400448902576229591567867246258739015897093213012305988747248509668108234977619837138965475860744455269899056341763600805623306920528959828447316825496600751070868553533906846625964883368153908531912887550343047572329435748618846466057199215427699090319978443336860079844652414303265442366414949243474085173322608574060974494495168734886733257322234145044790325976764417655203094340502423718236505161185267452007487117650859974820552889120427274175298630074156054811039433334497607138035129470993715384544197341723837277854396730282757417125993315950043186969360213317509154003839049761289836981950351957209480267380953830172452918378237735441906007484607682040247323269357143548096013494628339644117923809825975853027899671413511701974495390038049008365743204454581164437741989047155463296996057923156433108680847570432710829822897048469701783004489160760920301786726367263180173915345750817357552915840129121446869884543594534317281703806586779229073787081359041607631023010824616449118220732802124864168131682589719673261113177506242184451302534889531116870768385703085491139420866032174889563758692733921906960635361849590047229336947503857074911671781253825761306362647585696063565271418449495630825978649520390851086204945212337349129014031696047057869680003475963907483183341288285609863490331730459129827412999703801401393477408720833451423868638187276418808104196517030693109938529717774428456246980248832566294560742931201900098637946921351902065426912988189474780656708871860993670838658345600157423878013533646254741028878207746789107612701633138121385220520910704208282833854599381419939943606428458577405238133954675234672160741187661477980548153790050651026844077534232354885536295942353008918360744917308408978978951471802795638567487524184656308512941893547661395827240224509423551608339438912011106779926888143999710922550185679033377558478017788049495182835377779307313930526793369893822183739043536385284887177580044300589228590399344828680677230423022122918063996266864031564611978475321150292003788161019244494879660995238383476693063212943671241261164832068477010486103801475410828855582458938181554841212020771465647949590203406045349355830227420452422291124508934130795892743951397060211297573812337992546247274203895596039996063649455340243901326356712006580131756160035483621561304601226540963734703683515279422927421183690491583861289675716290031329751145946802943469001831535145236959911239279169538569132858741790082188474309284643172664954405602929535010883776206026602430581147368735773953209001051717309746371771840055425777073213120010562332367225421954468502891847180518900298736914192813484125110346826029994929509637024172539675362226439118912291602917797093682875156599185915813834106891579105137671987671941758031073276247844064544164630459444632959941377738020037465862056437976308156790058673594546843203738739126462298856434423562151302145769019781568072464602841655096805223864440500539255615480598826621014855150468303431145102398090958116177767712394895905822650591436947175836941602038527541667261993208910152239765897208783641154467940051398697340921447511160117176562792678447599625020229588841069681132968064424604085445774106716799932082993889444454096974881581193429772845664750975874312765703146850374571282595449351390584155880467713570335461340643086024776896418589067915117315158081611593162817393945670351431007984830240999852379805957012864313735391456398248801328746159212985216305350586782347871395449554183712439175105665056753229707902616197101714858776687533658966471462978059735361728765330332011359679749933088516231158270054294072266872132033366695685891954869816160412079697109035237351356783481221964515145155081044311716801754310348222567857697382938584783474550293515324628205338310630380557984805083116253443522709789642736800534217604918368984907117147263942059533880739111570144800125108972109854990616364821132320470946969413412816071671478272628669990276661191244692259588832177871518532474522877244737701626527801096504060888215688198488275027905640385771466610371223756310824955459080567982158434486020412066294763999508986324576016734393087452130395896342206833960087236955796163217097510075625580350674572354435188687118454600469676422520161175384303791763693809687791890269834936056504033915383410144415257461259299011386699255088521984798970633865930567905723913372947797784756339793051642992149181423103178770407542659582894427259150428130773897670400990754550415900289893785570771669077706177792931193993437845054336974433222480624676869416406351140458102687482819690461420785860327671079546075678850122067202453001788722287777343349992419439330761627767320771775927818930827840250692193560829543185622156304611883096447714294200811211859355396924578279138400993570136328707520566510835575953205859602914427676658898371522396521598869767291231132684497166475025019951903802675836720607303278947786740517952528847746777303175770639584649091661886523159167930298504867697634289052667127442147871260164271010224270266070618716392177003708054414136482989121625776512143882817393716877621986057198514785282010197155635305826988766815788541656567273689006321232309651630187333263322911423817579793974484882779711184555545800974854950809955235078605216323382231538121844962527317628056087179867578125338239692918133590697102838773263357366601804411804678129247716664261905866815549572553376666542398096460079947481229240890784863809883159012383148395383253714372832538214425817600121681643107004202309803073804485260538989313899055571819671284504886486124343573886099966484997340884771260489712453074046770527072961574033413362042115813917358156529790647932680424667683816297040366789292889099613996365686876934904060299709512321705602496070243029994379241289996840078919912040294552497708674972250424760134362068003096848476780864986874202805266041973383424400141264831383219266321320854563931694685028390327739482843022669950908197756823212845634587561025471777163825767300695882459183241534276407924347832899562194983159377089635666339022690344145992088260292852196012362219012183699204032442092015927905645750646544118008075889471497825256096112189677202794305215235597583839173762951873941688593781868921526559192617745459030296056670659491648137494920635816866211955078474114630509191790893424356944910644630840883422884638598868722922340578157401103108995997959754962098149808535038338314858070482779905270760102683507335000941507952071356901161371395524835687013871155401861647639590101958707923316060913851765017873837809942778356955247222893442732226350739778474337322453853910107662970645028585752098802651026844931218272675223358817480253939213706415473048408699543175422679761647747371646511455463904309436116908192573335710422565489753285258875569363490559752798635553930368143268660265222574946126361151779584328367201353778567100939083961427710886020618938516782235038167337461637196047130057164048916391364434350291501145694171296199077709590419447548113635690664614116358736421132340980117705824496355613191846133439968493651809270630893980313757734090544086884990383145702679199011398707053441209181027315090582206548210329369642543391307127839312769199904898965450815709207395900259353518359791439931492935479748767136913553377956367568459832674747044188971238283559814347799679096257545220464551119725895729724270921311323506484473412513798022245752753905637511063256871264618865615385084632287200354332985565492002625517845444447362681639826473018112840201910052652246516996262069020398268902663500918615195249580465439911221706301919348362989334528942162181771807909708554736307214988391354397369453736270986899692388676195926435818528526818926286792253192195507552461622989167705120596278446211071946355136107572852784824962732440779439537082800051695808792201731591215270224639322984587006060946475503165795890460270787347356202193522330023182758692373714047278908788041840478521425659621921658391898426974090766622451680891430691464170216020556952006839575503498661815032301225955838107462680815498100890571235633789594289014276384278206968336008476377068110586717136590934056132457591574964018980713514663394842601703526390075815337465844552314535035922790129524419781765465620512118064388650724985231169250155306394796235832034876736008030170074529127341247752967038860778268715267848087399824492550327227846787336182958268526351784710348269646780124341442107735819111130625541895985209087238353495727886617465806498173023527385894623765246097930202642535236788282299171986711230270055743387131635960648488184277714604696978558549167898346197104606170566418189331410726476095023819691730468318628513012436427352153241807040674508730554120892518589496551428382587528650789062845600389970750648925851061904250478548680220196917376788058778443479780983546691180754932814638150440641023671553689743322439551364772667871020299572342028239527337651611062479697699244341232618912482966181091663012914968581314070400049655075500081341968166903092163798397461516019355914768170552688121596155214076968652878913516101100148329714128757049177911505234309094107721508792825767868956910563550751948355247163459358756809112204961188803195098915342133282122155856260007459142575524436888713125299324019690155122882655744505568074160310429087047126395600792816036160129885484515550919143731424058145933251777175199159900477270167489912733268061520252872504507652019284001877567770749209403451019434070986706841784926210706500191503737217440019345677551211537029653600476762100778942862185667450253562123436271098752986999780940726989635782952044969307742737724898876719504222289886185517226768661288565526516563540891808932336201117270145897078374666047375753519385595110936386984411077293098944126148955903677017605344101530357415500914675672914162482673315066447596672212050328776897975149676987055994262781210158482016153979247000338906226038142006117287249898651811030369319277774319443007820567817852864245108352723184983270361688509622527340290276950896787468179633167491740649711748287760304984596185986177107562562994750690430688610889317077213560492825256513592570166311143897699164467943576246171227145775484035207836449571240636593974354280603676713508776656802780715959728973646528714264699668878334402385199634195305829170057937366209606644264864400008072579749789690783121225145432520935551054908945233415813509591098746779386510813163096167146605116617613469869800370850507792075994846359339734088176076694062373853256864334363109126509752919969521197529797093128259961588618471075562244865073672108801895890559230468437864307400859657687463756944463915967352196347983029359956516455697431938205629253157768091469098169297324959994657763407440647551004905594762374870852089760728620230236125978673073671884069804868013362511909015422030277766354399049175877939698945547144734159840907149192550892211390638917025653303162909075545493402682248879701890973587635677895738416362399148323721085779848441924336368733532612068504886093497660522032604997743905054295480442037319557238662930313810752623737501095002423272809792135143799477965621743647607889318870890305751566322910007577744813490700961358881012910695481058363800679674378314497560130502856104334637445637587508280630586940622059944201696486489720212136470774787955698649134231953191246866560760091533212846975036113843654177218971708318635260699142478860671843230671188881126541219131570437381539612957103486460285328048521030727675522847090773819948162240936087505580712634870890211833885209403722723888967629023566352313473720113606913133120360103212924680107991922910519401831500603184653712683051065695385118898085708809439499070344446727683168377755912891949217501670099660478737189414292058042249906684482050329087919947630688525913107405029611549176086226619495740902655832405388620962122856883929949468927992810265906046659908103543893678315484977501983426510283692821563758300293357146230558444865322927603799222603614402500534212977704016693454859554702063573266730068294207313874921535829254896175020446676924724765190831979600174044105575738555329736354889550416966964711049669588446095878612466222109127735046984185321729425981413857072547855168133650116110809184162262041664128110177551966537596743176715373368010639337853588461892514542809417353017979911042653626593848874743492298944419316817580278859113048172562963222509241742256828338054380977182243181335109925063127360218260961470973698286541119198007807412059415077543382690306693264340524006047689116709003851612356099354316381189889210743441802454269497295886134718970603432360847466006002455334233911806481650743075570041542899424715058239358046691669453661294666697077849993673270654995174523403785533172103712647466980166097839078702290587649939328194486884191276670762318983507102802300604128354059451830702692977998298274236663774002466897287081426249878817138776631254686908289964950578463911365736681374796769054659502140631923071539468167803917031983269326473894828187235728549982217191194997709397570807289506910742819262513963917958656316674196917629794977980217563123053714413861514207511757259131198563332519744433946829431265754223174916195379524864524593899815182472013563050754229975438424809530615139349688217056889357460572260957075552839406850562478874488507390961118620710705842415719269103554471157910676411768805049062769703190020240813626975278313595901887244122657751445340573076267457989892873652870873952070337880454316866675560400145422324366556004691597919140579974458628346343739457766847208950654055587507452330046719599678971013067469511274989063800384306666377090871205122558538756811502557547649658338716979881367303485522984914221035386549924591440149628645325907254858541464668247891289172732863316460418996209763747336987083756907252313417115165532736392541300646680811466379770109078133946124799433194840370345347928688563831733610833614318718458017488776717943520937690696107633383578877186576312946652475750773949914432790850226449919390301005733373023967447694290202113516355802153964215535376891707140679593392890913014303604020250525921402569167949489415413722012408155356076455184499218960350823403376920086288627003241450065025797316431105476738526891074616298787823374132598091553819797157511567084327014906752547762793673420575093071145776265510405505282814188376308887665987101762697289623333592510044543985271893170491392511736023097877580132864295620320708114981961466910580711485810945628417185624910581814700450968352029546113511006808885904913520498474564415434531400533621008358335876702717850648505002687206339466606924855873521802047879969212350676720683095035238187137309252488809725798952592293265725007720726266885150402956084162088265234008603493731641295273079401702476409631284925326094501858268808372935859853675217388139890649993532783784163016770362002756177909039657723020895502441511122062636781761198828181942004763134694486252093810048131491550255191221256432168860850399297260132335529992855391786838106957104000979325665373278658169053037883842642034704583388741033462657575226619248694127344114247446566708075730732969579789206975381802157832451119633314989867525797216749800953763593537222125533835101329632195064846127479277609434996085138538722074527656805463539159512476482992559199184794762466622911752332475377324019763363812034585839860786566084933590398666636950415760236326148561804977309790670492887081038443023715075125207851508460836294563329298027575906526225644318765238165764124907682437598632857718917958209923019361604187042854041500414279468429022614102261150135169669073094918080898726713024881506633844882387111947483002988283262468798184219555987319449598033327115316652785023622490123113214751466618953813958875676244878445009273390212834460160991852545993087406792543238907665186105074372424853391157842642944284699798387642306402449686810065603915320854235809856238634568403945486082441215450963822432924035438514473210328558576510695946126256635624167488375228374817375323228783910096684143035298881166675057585804713868449461639877412043763128442793094724371994214313124792257784154024315078192440753003496827384555486096377248090472859902216699016265272953515554248975216908850091552947142828233157355402746581574358210063845692097001322507169584102769868447713766106654132112913139708686489122869343575787230695621102830073242092109922038327167719447764150495759808422867949534542335873383567101599633401480480323310310360904585812061544926317165419472290259619222392254246498435792600085531527760621029979033662841870986116858152888656400078921108619261997690549264949905143564978920324806892411748508073570098401016869803839039859859687004079494977000097881942211633113931743274053659578313966930343410328151559140355436142444653644858695174882503419221782708856509189656336931891152190206121589956619664453603962923568129013795457490948226992251675677363140781463043374009700217180885845769495248707291614168694864230516574254705983912884237146021964258310202946048642956402467131648828221777463667087920169951868891237365366150636128371273924895997598997475211790896686393591208004468468124081971377723139853786941233184679377929441025106874290311549253007937897231805507027698174680236994776115934254488968683638287038901499784326503232368824469292125432313237313199921562566856205532710296973605992139730910080431612600174166016921808079323195632180855700205648997722472301742121459740512706626312008675251601858659832293660605553787941759088286175736312344315775214313375506428685564097893104103889925967437306335829721154955110938866331776414318418644373698323594983088691323213982925966405754947323720692782536809070057572478917181007738955921783499063899877851551135766146068452926534121809069649169449331235191290477141532352289660297925804522145761177022759246065876649235157018948869241367654619807246560443807227301130504514198730992726088130904405453409578521666939014395699613549249639736119501035944867365036716672135934569805945505443476026369895604877401461827968406281251937803867615719552033566646209613865820415410466367273697721592156344298304976135030017853297019712964335338878491935422564617884372539881897039081702855876978688456237115237378520255508863060604471656390241125874193499160910117721870258002739800539191993864959814634691793279574264222649006158339398188535634568204406157086375780284307432762945790375841475612749611395874648061741904976578745402965042930300988827212875737262214663650715099351203245925094975270997549442184407461258029057709680120120032053241829018584120019778289355192789874256173679698460410707557605274515055132344360811216854280086310525552817070415515445495503881152831438836319245287129449804443962021892548912504534699160033623489751683223070896596138972968792796257309984873472604441530215232103596965314548352085219852322344506022470994498430231042595871298636515293569201657755762142071454431555058620813578860153741673977763413650309423580596017606340453120646877988804585192790898608318750981912977382827803475703865268792208363948462239844713356463920769887817495135382409146234413308163466373731279987294440888594720817686504240475959858871013196677497701030812732621460181354600732578630757724297342551659164892133110955056026953083291192510555451483111046709089522471225004449413199659321478819745657080265609220621936413497985315781988988643992969115416634214614610655364282071716215269786761617346656643288044137493864929621679372799052370997808888343931522399279328799358543473363736173268022884614743629335132063577188557905078836695555419041073928752325146574326633782923762203363762413862662501213986554636269057728154157387187603168583625279752964210300646566389135100498960456398273675087475332313307267608320462062096341606337727776375242974345752168694549718587259135566046751953763871291438518168228308742677197446597307249798655650361156228887385765125919655001189531785131332540428013149905516056923057552287513332831589627853016801953893420057412436474268637460536809181690208198767048882506320504137447124960060352708974035195604002828576439116973597578308023954182202762824906785668777886338800908208203488979900261980513623641943441850812749226096576054164458271476813668053394463253431572022889765661621479641040992404548978558988442337650940661344804669711805214503084115335067315102036902748184715854256757339419538887276187820499257268841641300883025619122154168885513862472282250276312784208920300081817238585374531368490504993644676447087103078773360911060422546586764363403535218579742905269001325486080179552025973483143290661660138609190964691472399596790531778784930784802111671645335373230014107705092502914624683634949738377867121451945717418762922862062746417085596001052139538339691430195348994561875833212602009430726129677708829074209839731843432289359153107098573860277645973325609291137623183722515344979419047053601905784277244527375353500135914779088061978541919015371493582664721422236068645348805689903370842939339576445920360794397295958855402132649435156973252417562529164580999436423123237847058985905608901367528175286794214075129401825803880371883790489101200910101765720091772879845839425072093716890152579089633968047918616097814611343115394224085703763664791716304017318358419227722738762209166075594106019187251316928929229358399342406933117436555936874455854266199439865291457295292830316706927080023970897552260254654562079747892711490427589142156030306012537611206012409309353197665248783340624090809726282046395552418942112991951120191348872766110862577165511608864050956402025298014061386042698432978028767201575451587266688502029689832442498018250556950960207666277759556205568111047660814459152926639139497108350477414424120513164196114270161907075013221175634746135088348415709402275202452796401393306518991250401852248299928163923513462077820297935285882887595183117010491469858795325687308298791469348834624853434256227709739615890067036859101601880068905445051047439194226360712124045529288246262994386811107524142510815463185133872056642645605797043392508847205328738797218789491053706948482503938760984215534846437294381092157280766550822070574237696747055329785942123934970717671723463041844004627737400969218021149869208122816932123818534701537850844813843306560265713078115446541691895643936000418077436663884734160242033215367109009397123113717038364103516020005394427124680101781820166806229371386643924457717787456270918423783083820069129275960672216635967306028334835628611360290586858248623618160660046698309731605533291802282827060825757845059791212012221340684215064501579438991136122360437956856952948062975328271646199792850162164447208458794793493327866421657124666281511948222434563930153460326618799222735995766255105635318876987513703100792100637968855678356401248034747079545618411735451774302518060366621865560182819315304974785961780725885953655156207270390860017182227292124560639893114060956850550787022420141191347205959274316723961137510906099252444136394799392954621020045540271445235200915153088966672116764571516805458530038182342260593505292903117756413810042777806457064600603071697010810321422144563022964019813275113566072046506233881575419007168319085624797678207107649867223459846169260781638215350300114196358078991432043702624702689808172440295794631891567468953113483959380942876859236338412662336032467065742677418440448508015100409453911604330008470370939509054185083339887719759074139281483363205170355607475320805976708508020429157842091766081620863783479989466694112804255282694576442426212792500822403531862471444643031231084263284147486815002971940255060326242433613335743796963830724910000828711327639548056898558855503674392877002933609694161697595752718743234260204006229327934293345220578523585849564310046083734857883184449875581666978481155633928883690032369560296237994964092534631169953235099388128148983365674367709523023969301739958272331827696031114987484666377259512703731201812987049076283368300134738801144113968649340161834248628790152282365376613218002470346282472715464136941660071547392084184078492208659441822215217790755748862780921116040196123824906245523930209058936688997319029677865539554865683138040259553307795590292203473158312602031522326378283203608139968320635213707485040527289871538764956423984410954549756254109917018898076812454736502503056740088033105978303769123509791699426437389456320060561207251699515608692218134786417840284618630207382832170055987434231589393822510237602493292136617128409351877792488074985030050985031859533960236233668679240661818344366794582470433538309746275750406332123755838416442844125882297746286474595335906174668209582298449265193177239898813163929894549483568771874146208406088885635446755185756709454616614045355729098080656467855398999483082225053391993410261233039505553985363802165200941969581628253657871577925070247944244773830113599181731464648538902302808065933374963676683749931492408970367942748215033590817077005231278135270328197687418167627404863527394016299402201778208645960270746927793655345994086162264494612570038185556254618148205547953730636250416356745737123454551420115649608522636322052119320180028615365316434108951762075137023448806220215847297577754891734051523317186651491336793118021596814179944064137304462527397172943968703718125138487968128033981758600568890210814281274766446823054940230082689112358116179723357288139906809305733791008074804718342291844615069388278611540295618527828138326838617031205604806370716488776332273943091374803571132309063779441649794211805068765603006668145701969382164361172143586973938269615469490648588155852224144305672316644318395496986785312859978385162454715913573729333753418038177250012696056106034457434393508890329577994652704150181733897930156846436692157559941709670396629393062469512056120083876767780779732198786162571598452770147488841830485622888817374782211212801154703254382179572168024143902399693248276955734547147689488516524035801253575117023962237161854719959429330994154607034200438541206202715225108507513292420235278635988919357844704721825051973673664261696737370778078876709204735613204890322707965914719725673384530701685019078503574632734082055650126008045086234265108711226145785548429482271300876463900166852160519900075201705168016907123822871508598254474199403657706240600308844116715747819056743183466834483671941971180195558887369108906218578467734724198718396650308022820362265616865941674438202923144206788504789493483980360304660410493856494066940028332721572285170047678590446556514534782797486856611424659019705241101217537214456091084918668147686195947471894498522167920168669827269739882152755006382316436096917116757946476436826879070281941814205230180160029021116672709461160468622609766191775120101566187466058063847920556009558124894061508816551503963549927750652753058810799725689907566590105876038386117607422800325785306665522516047177761046947228796850339071236645116306019881281216368890314976826802027719085550701189344818062941245103006464510655192993561148929673337716689102617438100355117618663823538561471151123264921462492813901533714459395760089019919843632773470724831276989835198191159599240095181984228755687541195792466452364175483025227002079477399712831882101367412580000394089535647917746547398156201814211643804522014807966480103783699194161197234972507400786378852714645041376361642950778213834929903189134522182404036706808119164192480192559876035088936222246257642251802247796801645103934876994703743246596701550445116043987050771431673959222515650597601044567444241239520512213813149533927726624350534946446837348777812219106620871590308399097886528294796367385843060140135469996146514090781924320710607214734588519631060616565230805727828862125254981704116728740860315499970979644067003126990485694828352766051575125051945308585346917152926773752668689262805700948676037354391487298719097543184919516873302059556515951444910968453983979612696834476943991285956784143926569252061821837695520331098758137552151518360586145324708818475710096099862160183389304242825403050846460993144982035251514884119466402558143011544624036995319483392273572849141608939254967706712731786962664901210736469510939389849571995320374354663591643185028609749987575085828392020916962213261350462766936709783366467473858187229156891964812486930232492237123888266326464530858970942918030592029550692944486892434942968074770858722585721294384337744436761703765853634783632471580030620586734846880832572665174018839914161658525776844306014580370693035062959305373458503421236621359499817373964166685633581038965007930536005134445829858167017619822083000675431053201493880481419932168560499788252504021147935884182507328250474174873714410579538539632439473202220519826995324425909678669837253901371947227105624448091701596070155938693251077162304155802292464770766800664625862495400337628977179698072035886067452733951486549626559832333788391886865634530420400895981038496865137758774589436571928329791485350620252328414068699521176397538488469408515201002669111258719832289533014487949051376207077647098476371800491371613127954407976759744336071286114905720857161882891770534709586185777841642832511637391688507302460084498936380101948473554185569158192725268730218988690009535388579025147505056967390486618362290782328549268017523626550206628371273740477167702407506734055052457930610529853642901059223883632030790266206397436110190057807482717084237864345880197259675895799575527825344362029105399166477895471321978383403848550647710855623306713210232658524456537912417902595424345866676380062436917612657922736189109786474432610834013291760407708993342896984427474051300821828730340001185063889633380703611221600851493299956030174224391548991155403216602708060097968760616970249764776207217589885744781419800393043799786978693904171757191749292324894737242285113418634502109464697111315804505729207468705517811503064503247662377646819131036625914037784870160109359773868926896459016647834969740888952957419222435650782914464210862972523389008595986233786277360306954786076599413840024901355396099165202599154033059693250889850632076361596065577622678458902769851832022107272286485923026669575260704653668844277815346097112777915639896465500860786558134769921190327096358327549036509938761036076466294264625862226480228966835038019618113927306789276234339842882089855872199529899404302518659930745111867720348068279991352390605825817359361596330531631243921621380883535685500452009612870617737001307459902497945046320774362865357287898059480757002739000407490861947780530829131957964880701192232125707564427355938532043938691038662876652583221935531039067745573448522523792284104715019523111364828797043193231707346658043356603804722786373233551038599612293719442064149820867741549620754700045904386117395012479803811642691362305489783593111197771314648344241262193844087128075672710713044135220026179193316090077988433715983991238022320164758373487130223354877109204058254030457974504841600963173522233976649109522107304352195602772768166631405260821841567121267248215761840334930804365943573220940795256493066437974892638316268921337916797324768012380142515351316371168077562519989931931917548820913795978219123925168683770118448775914202965605901175700126516189541852368038260729038219838404203495601762836638586706560667132625486374607255934864881971949863627281950983584482613131649918809821291451591030891148975442111441341564443550120890459642886022446340616717244983317899849838594369427730279483171883028880836307842354529283825101485701194598637173972535625603853896922148078033144310764942680369713506806639481508507724385418935020534617626782736854373800089518969215429257716985706320223041864554058161471393437426351606554067673431598343844540485230569600685777831287713225964344624941592290097649134935808363727488974640459783823638190994892929621671430817517714998556034604698293002363097415899869265726625672526581246196112109037786855114886540842383827940913668824833389788116027553814791054506170320433218466069700411392856561212313837580393787932638184117777061189294345659567335171256885133512022841266606823974784895551604962798149842675672887353370778306493791349750348990264981867788668006773766194227813460564344625014298508683550240109465055371559122887151488400181474416615938892323201605163740599119768243543474577277117347115973124534372876023705952881990748354243328946290404574164038411087973332512677918475769231067626699739224741014059047944171005150274614895976502674573614944460744715409330275849488360551383747062104814995754170112850548010590964035473050044450449801799991281923449822831236121772945952546863657515102009380492059989631290621124140997813240284440758937242736953579727270754727555205861677205716981316411747982687706605550033512332433295187010233576921465544327204644738227731941793021091938812435393018742268996083353134485391608125087205431835165898654439432974461383358960706608193667588024784041499027565327731468320562042921661671831974354676024500518480786742252886825618739284026097752933214253973614908436559400282138579069919339920510365881719553935056023712129681802201770302488359722983062642841584597559762245838376309383736597426149278359587475332455633881755313497700193783548235705200787471065244365477635108135976927276216472097931210355376793682121896571969519823072727899941951723205467307754729776425214153752660151101613291212310254237550826689293953260268758998012923720227987973836292682738808163368916029952304335714328130185591596210055269712199281657782864508910568763931558772616014734875624008428925425851272510433009093633828614113396744056969232797118671601944206182317965458681394209051621198008603530482662481340811490565586672634290151873477991799222589556720000856033005864440661705424899502809652625095069272800137050267881850285193678716373322983745361614260990360427817696841951464600825439653542571194503212582065146362942025198043465651838360889990883657160746473387960444961340043965142000755640955335000534063197218538658379665929819551925283996712429206085738516199948913308358041902063530229025895217181156335219212839616517151971301272510391499041142420785597966483101105126868004428681561673656403816443672257999211996239715058938251982046239827412012745599973826239494514367671275233748444394195930777265330679663286975073613111920956088743718707737246076073662621830258462750493010729867960699934799131642481893729705928086167424256370462809253263947535616953898496434232008730953364592547689161893257409090185754893106318593085352361453566102359201783718148626715599583388787379970663580042372864465637048934936055549472891137053222641233225457759712852072033761809450707886422708369875462001783573964212308408431288481045765555964143816266924472468577636895002675623164853717796616895136737064629963192152685723906904203422208720888925970733983811447483204053346627032810758622116511822188534992313023642026120858263204842450813157289477785436629267281738059243871662319143888539019372186336456866831155479558239071860432908564515682614008945923455724402071845183903576434190488660587378668839407570179960659183312451616473523506390809570044687537950301317318793967327313287590454945993760384558275106625065801590772175698926100231707838489932806164245893737571624406810841217558053378233125936781797573678266720023119476852066768177124369597174545926236764240663033368904313535347932137276752151837898869782779570606526160024976618111719383458765525217986287257440457901887978080628513133125278406956482921919023793822195278294213027516493959237845620997495270567665241569626671807019257814740478079371295344339925051495896880233073056991375949957201695948319626067862296092613417094449093788051320574277795332853408064368958218244705027634324169012160224602989400821124439341856429943801232270633721245084136191669496689561576443000231383412226966613122834593533892295250613271430581342779526343567985113087514870511297482507523886341563601346798816634198986238596889943660528790938417138696817362662004565809561188111192006449660996807067291251959932573548199832902342777915104319887289628135095204781465320254655391764979909886288794555734955718047111232532664267957662380781922721212324179986509790918704437164966137365650434852826910134799593837985240355461762202619116725184129446279599722799044366751627972815648142165555883243826817742332674526370793273356727200774940717758396859166572111956345273126519261740210854016826277270090639225319105311537149450428782689267119757903261708541803367360560737002390841591231332304409870253219197875251696910006956221636728342944565042993812456923697108385816579836402819169389189762838565024721929324153596179676055153004998832798410074593986570954249655272044801471113058648527329162819068955005666944468717815140521149089102882947617035781229064946054280128916675866771515869738796403615919622084127741553040254531100328229106116839433598027622543071493234992587986959168573322253550498872183259624338685093188295871157761913569180110385228207760539311634884350082544755585942466673799902656665605487061420074610180151637278634317715195492363228331877074006663673438310634783461366013800440220741332475202717660762212118131614540420815645597694151120283339583380858899888019570518759722234782060362825150853912433958493805487446328108069607089383732699557312475660043892986052732085074851227219356862980691598810309242975488124090785432538122569048692880828622128117661573221293844734800019890392542430477217837412191055470802705051385072554027005728341547132027912199176561364478448412596398091480511766582754320365206025227288183872536606288967778559363022562393871966471004775898437961719275273674586233351488320847446266856161716084706118961783866527806786988351804438550395248056399345153430078185170707646394846551751211935099613315829769514691883607028122660749046797998276589347192165832835552282604189901307302066341671196291000381068694879450030887667101195969987450494173349632753490916973859156324012108948580284885388559928578950801860259410578648960562777088760111569925800873710323696282432174995838345762071808218036224818163908429226658424299816774930966515205968073788647476380989290106467681796167601713780262690436270868663749467740570348817090692993635217713570721777128751836383545398216502561768405371622608409761667208917406730462570070288743708974285777522692453963781865804605848053418605008071614880010486959233017181282749395221816361729676108446795623486681700820787620820661681461920080668884629383463215198372676586501921240469967378547940783286853717933720233187704772810431248209610633205958475022171609673060468346627464043574870758080601655785086991663924206288187691241648669094380287593498064295180386665720279106201634742336973097110799304596042835781875656691914370555863479866862462985294806570714418232140616607548859335909117386654523460363601032574412619787295343689518670297050192211599897881483922373413055152981480252968531454918636612671394614217882343487630551626454592667253094689552173643458323339133416397783082407583788467944755169914061466131559458213239024678721028295198669214285295598710712757223919975134416468473816817979900769790717823051692946596039370885119004392573145104690476568758982264814559624398905920806802249731897597725370057769541255308697372938157321625049997366879700957226366112554234040395838351794499906776314142791903575138992621954665175197029147925815878547654070355807818557869427334468391079742048968548261964618448930915990854008715731942080456379236501491805569848846957824257877377198747035378758347881536995076409583148145163262539629612833731412801253964973190391346398946915352987469808181998091317819581834123048353032018233400209765933004642477399822731714950255105495203189201277220345753444320628589784158634242574434610252187659731144018308619574274342904200433056149885562764665768308174635077902682255361341106824841890591348553145465125031831469894612973797625039110509903860165380512223255492152609997291103604062731595517295181575295959510122306288011544365656751157396206263524736665356382347233606442975135732972300443476951865321688609767303952863862887737260695897994847623830172312297759880678228636187676204076650030884754557551163045709473745764546070809138837295497438658469400674752685685703834272508345374290864797948176358449306574389235152801618717896930265847936086519145138328634704540199208312614537846825449940034709417439475163314914038705261229171339030309917189280200515210357315109317040392055616349300604764766986237506095378726605864862872376103833515707118858279870002281850542710966388477753990706118521807770615927288981224480831826380210939202143782887165976822881025379260180126397524148780020457116831828355692786380921382959790192155744544401190294586412992120433448887684766290941108995341711476537361548321408007965047426335994998321908343471715902162267489544714897870590917890660298011245840195729058092113222231067849897794160564688511720431269602536965801800490898633708700535469234254879533948882013574330083847725543641800097238276441958128834825085290528856649349798437099601734934131111601045959050304216426839534634692334099583900315856822861850765999873764970043051990687261657445939457457992482423553084085510451736130052454073071280705037966994579127963951530022753225631029172489822475900862066379588064313259060736685760819522711483875812252719320673154740847340535523086989922178214287027171685256631745799043225380209142105594138262966444439491660147558834142692238398222248737762447982432443241320036493203057730038944832785452092896459898792135583554332039155255651180911620434828525259055203680657155457251545234527542914508144950827427819325901321019768462830741222619590572599755976919779184342453448257521846892509917438728214214265452341481303619513763985414754996454144036980133056761613487489888004263968721869636898074307157063883592275653046560243574700099041711174350083492535064765328462775747578754252289555963971443323983522903992524835569970669542279971231878244080074862797978390923912816645825492317977533236759576124013107466555226288964622387179885510679390110761628382456060127679915802051847601122929469857752510399676426244571744853538132176263015489039526537453902771138729107118305614470812257852166187104634391365841753484811168537094962727301596834627303535987110311152356085039094720325954143714930887954450492569022725451940102009593063949598714336722464115416335785736017897701298816346008100099588058079637919537239171630344025739239594441152396245239730159291386276237601158591317198845632523691254170718289910750022640633146125280499145571680708726339605397163267265363598512290717137920466681957354491512454412545300502843403064345396334319197488121824122840292748176280212647430872926744699797938279990597181281959400326132052615422405585628884370138651422747972138614676368997603032572519182930269181633213729201262310442210780484502524865521828819409426607857673539679708769541372006642829374183134396621530570509115438603766395651778283412979568146640751147074113138853322327541618225327430727440842350639204680635471660110868217708601418806538717672246052301607442803945126649385304116146486400480416278677356393875158250580360110542994676710146040287787108356450777882587352670476801860205145938626444687587431948596987649184454582291219589763226953344164750134200954326475446629063321521633332479998678173485647094262131799364317334849065673739577014874724615086708228646401074327819794279660296232379392875757455400119354201595312918190683723553662007189284668710502090567010871795821756295847350951236457205163129964734126279435598805707619556280576159235922500316477904262002085793825489830368943404183014963740825829322959622042382434612834669621990401266617114972995687691121438167673715285693504130508952479925308565101739213775163440811197197417568314955632929636706934054922271634741853748768997616400640475810404426621747673589044912689861728761395309775353094950877700424587839009964800748956379780233315918980937516522893270042384246908789236154782946003639896760927727180351609094074777300932634771598218836563475901956345538427511531463795397443656625937823126198195325713939568695590987620421045678997386457534667978017406745988675325267756153550021260243314454690842915919953852766758829140452114538193474898499504303681744386414905056292146502148971448173570066196379176602071103508466264094659603398659600657607849163763443316988936130359308681603901425060687810613541002987888231852061956944638828973131856962888926939893896000876289999757672910480929806919828987773839810893744445864327671609017234825711557950675733052296276968234515494509361785154976464526154369169611788183181237703768056482182784123933583160688469228440782337269214826646413348141914358098034007655870312837989563492524052105670680307346076096388688761011353834887677305299549523219576217093267171540091247741441465380463115674941341177572813768654918311089935898525984789087007220918314550515390923983075877326162488404667158983348794783241994081719124888888838171451790061778599322233746779550557167379876241058160994253178536589033479469165364533110403999509467517864448311284635726583195576826188448596003340593916142058282720680975839535082898900372310690970214400728213829973321014098222214659969403216755315580703666524602681480837441084081694802098029986507284032191820151144090334100830680209745257614443318557377019481319102462415096758219928801760960308370531180900380344407946105011142916893991881851973506541404785432214347977777510226103030292199302569908033262767159112312255236651066819250773344864738384151273528425023483887316497677066461551704119057785259727773478871397783787658513364657985265202547752996699675239665658909117682303733297886112608257298124069535357276147737007634545735329612796145400681344541885549865994929801141694549614993594835131563184336209945903960531847958413970165506061383727320897475481564200535265254566473436943601475838723160102513896966470304565717903537601053315571340512928506209920863683717154017090181906060329727745336895710166494701309703033534121649223362767673504227023171137101340183312625433540777128040783218852263677164746225609928552268055019644286888155264527421150402253663245821773411133544928131841889176251790920984082278400470449586951057911484988028430162880928570803598740970381312222094829836629552775996858212320582407700210219844647903326631602336912615701359259993805977309571317002465984780892467911498990146899351293656649385728705186807619586475597600411691910543132581740174151287076453569941336738820992663946119552617388655953623746766114178056104367500071828184213730789218363025936590111128274488405041250420991210269879897270171221170442802087687394638964243667133084399767030132803470973943543267174095860047413381331218613722135109655176566507082041616014799000386274313562381794503712063539925219529269839130620769244694271119095475737617604265894986531277750541671253002029678371049879441447713713870474632472652700937562316563934676696052098132399782776580923037726257752657718341547669182149165188615263361089742186538583599972534130918018776300015204881600573560196314950266001079843979948194984245440326633760453658309639939663070238018330637115867176652863708750718638363968374224939761210468615192677920002304692703891704244449001121374221790419509309590951663619009924335225763015676272456376302567549361365013027464307496682729916458304731738392718746108093148495619182851700316012800362291416440188840182624743908456096717536939081762482396100858816397511843849757317569758758900753236762907334211971536976490190230489885402317385166696580522640456678021295309415314944889634132371725406462149477113561714305642832671951038971647607361887480994160046783483120679582312444357012434301702452401948299982980705923079401495573337901799938150738403258754192287803238363671784109512049021289508927936321085650921364964697265348474427566318410287543749981234884501318778137979000471462181490548567907716438255748531751901768112987937833016947190164401765204272922458604706863335806259728358898134239809125895689445590557036435995294502117069709560890230464384634704977824396248444056237097085410016779059439749520223826445013825950868440385309271031061501221849389623462774685416962766374974205123536110151529214379919311141571095156300204026118159879959295570929249032428057767359419443621810316620359656323457793307036858962316299727261937813899846118994178497842595807186036492152282526697021664315929315543711607661315276777160934727097147540194375757372465589666760347776413485185455179269316609158477768782784966040411334244433970634202611055308537668897221566370203649900103969473015885820629424226370625085883317960670390544655936777703806281914844236494984320029322944397064695623228571022530724030602489915585894367526007827500063261608756885031172972727873842430469445501013058035791226670927291084478322528323479001893821273895530926870504116666235897580340734270860660010187017352572003421491824079906040005619382955253057439911725070311164357194933330678873132993691387510155138395258042075682585134160162857465605179438505929830001963221608781808888242958432244577376325963584717537891297005650402479708161847690348847336131911853479779655774616235269475393703047153146551897826864282766891277548320687273704225197253917197746334194298164100525894504968803363467248232860912428165019951502247582754782307824172693638710421638294100573250293135699949281801600323684592376007956550433121956266530096569319731187163694125819550428508450300326567964981110994004924604673370278946206722603385126798880065847938074511668756675436327163093055931887188766272835881736961320651129936476847820582293965175677239722345916307442842392014324634798472047402291055865720130516070002745700148694386072316714334949534416325550748598951275473237806893511103485920002240237446078939434656670201371623427900460655665920364251445660411073093786690040763937842162744145924048410182244844545530979330527307243713112701847684616147324502349751158604500494910045876770760454998038539992910840021777393781630678728353204446506751587533211599283919126319093694252955317662778891587849668099590655407186174722787245338049451629104173852838824578557395736070032805455491099132210441484811417898255663727895757363816111836277557180885523656559579131238822144439262278957138537394384073432191566199962011728891139144071632436421894058324196173834487023420342571651736112574224305087511383235166325775496494380396680122291330182361780578897578039538944749479315531757389473883779783223196601716686675055094521596017836634511343831048601704756270555643974437746429745468499904928533656032676726178330897903224787555225757830620259578830507658350402213960489397093324652547881373305337282226971475277382933755510342941847799006129938147920013189429191716877942942159458953933004002954112407815991768271753972379831480888026430756505928780435064790541563972421501044851847039289075117965205647273632247576781273206499985942244835353620178866137022505290889135220876173536009462761700985909884171148239069327436877897564157127318177562640671656369656079039608355768577940186621379354990247404156504554201709503676122415306761732947967076227462171833555383032209327261576229311240119216680284456073810110793694854169950877212719007397921438280392763527630255842257697047596885950682413724218826562098420014028082464872424778721867434855515802002752416621555230513437375974674823912636758520688820515055324845019968919203954383605503927696238298941322440993177041416971562581705890224581040078293258807795224289352406369115476702786716041796995225735654993148371247103313078649945719695489744062869183697025240266359392659344561592144267153672874665751119446483628732319266537487832891350168405268176668509454202872980591478842572413126360593673290698823680733178569048065700333740549700803298807262782428401474541389636245882376863236560958999854803520614861945685639453438387685459819999397296011906436481558563667016179657725090044816429648357510764231399090921611293796552971337289207988511710276166102891329780168849746001657668407745306895843644813539882170819528309145209659288357229655743520527247478427152946555016893342523480951419998977223665209239426671636719922633342652158885506529749906403942161356891025041763217569070957650603573049473840926793766850785553271508651584371701163827598193345316749135860875693149559857018880322488851523013223932138197117752111799801563057486942586608412289713316238260036370347331263632530481320417779588450196213984660703305378820712036439075695895380321117468651320298205432254304831193666077833626446062626335913185876375500573492807285704199803164383670818774804335156583315448704730980982164525658784576117589998810539563494688954817718595270220056300772139754655606591127499371952890588620946594617833806124197430832716858184188693270834530786107428145631018115363211980550066768576839727800641518132452727866526534541661043412754060362147534847320296366843022329294516451976228817344653600796261786357109817667416820862271201861031481933288046139201457214181108991816612570716698267923340318902938479351709015526614945069445974023708193897924421396059434915582248265416124382739807101378309741264050120181571053394184649728126278822550581334802699951680637597057451229605300956262389152386622065943379460668157395721458824965309233925510765525227166996253840308582370349622558565759106053529497194177412789891753131271683172731144061646514873154246037557367120484104657305845941373407062223070687593421834959996353230830070137535470556847233064048764811454823653639159004026460766722319029008937270114950470896093033352656649015534633023541564436812522981454949856329910246954592077533361802730549956388504659272324665299698574450071059249496449818797383152460587675976980554714194741878878377828566510521158174723544797144811467243797761040142579082462697981371498178709884516220854806087762501352144519072723790629764789244768084385032835038328205757301805938123492329923819947489677287747089168283070471875731279652934724987171493074876394365247303832723864970112640168127949331167498209391396222936772525570127719190627810848595453530397711648566505930047194186544491638912024327408110071732239582434831516210020774343527802452567606086869113701966148498302735712137953307102036447444280191906911669927031193201257944461779824262381961435470642119829179247450917768404143813227834329209507921765220225760484392079609465442611063079074293304484052300536372505931686303282008285801081368270167568298982415871284568121816359083794355436851093993908779406938008727183984095430357284363847996168710048896882949022593165338985530883972159202567056469754593086837787486638627630775802395658879718441697680966093774060622217332696257462827524890200789960808192138292135233320819780052050338337385067802120426062248064584999375069441808881275637474592236740154910765727800661405390422064523025891093655279297325757559722358405470066534717822175355430913126089385426695292159521996925720341025209608398430746966327500956204342892771264225539496841629555352425709185845935915776766095837172306777771165421026771669601564795529324829067194691985786331336803095649389258187450545463694911341474052174249955398340630490527705558391294144366334391723752406593443698825745059782207345501644010494282307787877163568912161086184043078457254959505809705047036551696648627178779352981963059297738904891221102695694727854874191612441814299696454030637036628072923897864816493941090504016875112484580479774068803619306907673573070307476686836769122037367493360442828565017171666509937342464297574462420167248966154483604943436548037320066715351595400410394241418304274446137275670213264538426088142132988811103673088323475151753573823620838890568715325471271834758639022670390896898760260517161672278981419014122054411230437635975178906721413146040506380859794317816258756082548304542903210150093651870915105940503192390558244167925173465742756188506464692457242104537696433940261891408239671596573382675601364555220807130039034731008230594850621602343085155851826652509879492101713565269759677878779219131658488880016775113616975770238224932700892402706195814097963518232965723449644856894488015917085338842357201228936720427870258472467751235782555866788523805876080026045244581551393985751608343751804065975103057352927096519006708131357379748841980721481297250505339999734897617884343796016097779105994320364860506660231722033713259801617264197741591654749240837940763708094792751171385680507119742377918152226625202568772647069230410937528332107332258738846222130300668586807213129650347773320963667210504847941775097129657282574355297329200972393522709170366715463289432011638703290601407632628562178092209601747585224697210790171572546073847640679909905040998471587867267827457114861629843093440820123844116102193737951942984474347230769694679507439195858270087816232349535361538259416317844551918189635990541146658221082183048724899882197744215567754672704183419786367497374467554234138843548906191872906438452088669989709316702181252468050686618473938106380054589089129721691284060180842762256129578108923204956288660789752198547629455827085468286681418777716721333761819645864763990132659445271283131371228926582480798645799827151854422916405897169376193292380041550241936789990693045715150714981812957257066976584365570337266532759394769674458476537965053690612212968066692768242573524631614246074777962111868069113794836746885671413602096406249993981705510464210382332118700391783781480306793600874697089122149678266469081963939498190741448876276778410202216619211366330689716562294008292737727953883067072013422378340659100289175296804730531957648856366736397111478604993080349593629428412439033654970300926949654073545027370282054862502112941976543864254834402856080311092343465327885526788168612425760369230916917081266902970665398018795603563989875552707056014167946500098250304285946360955104546177574093302400817543683939275846976657710617364021132613456746600466553921834200465037996474566619173982333038704345804175199522400432035548711997962334049950754119547071667863510802383421283603937288877793145684227979529197077925795892393044737975808355543166381966801214827829984182189702329163269542512092601592589875655183383784473090742235923395640253313012488125587038967737142021895096718725310640884029945684739219243276923214196695925158716116505154221457361347154618991442727557395156482202463249571988527946153594993795075616651436713620906554658896533488401439074555734373595438851471013502230928541510180494392627571674697076245314799952818618486913046066245211854776691897566863125358379963910664506688855641642841450897434447000209823321135753359503096015215434255955245045650151365108090949371293349612920950496861488380427124879828696146916408218742070695562979975451815657090810976182972967275403433915658213726917094592176793613061977639346298062570109843163785643430439662841851583190461876533698160288326347197962855353611404655259505958857331412528565426618088530900701100544143984338151537697397908423131155698802349596875294463271061500253603263096702620823382735860024211356260332585650474225880158260674423846061098606316498291138144198882421061413825814795808221128663886034848694795107139464931308911146496657731874808682457149572885740899873940522576674851074973497385311595828357133154403615107901168509297671570519807354303763404980811287568685965321722575626431267035035595433641290626691739714932672125109377484644033784239078307940603572396774181101975441971326259803531370252426745631331699639806210104692471786920060042992512113441011895118201328018468193304603297240676388856687119101222790149042560642067198255990307839273812216979675715943833518846965958568694914356154895278833667105088495542623302957184426798813444219914674226281152071446563772027275662455258507910894498226754194947954787092599666417565903314635382876305542548195386438134580491882684797573039815587031251673487629243150159681642146221743721662552677808598679415504611946076433424100368920717506905086809647039438125387073036800849894459008213507910241423212229604898755404956360291491097902309825153187334093785181891449445812622904803221104048579186629533854183608186834582522345134366313436661974660227307248850417919965324410379206384893866628075657400482148355431785599819747093170977999065211805163603990196619396725364476983213138134346356974779910197251361042438273270742322774027385442365806410966467632823631100513085366414715186977264860708622131385734708200858559054799154231496103348110797603034924860902765030014925289726172996550906129881992106919622123905439901368480755106651433937859832826619281606694461119322154593543858038263540256408383223984281983828077758909681395750624850871190557511565526038940427689856998022636116374674195571119144377539638521805362283582538393965145709322347240660384083784124402558839632220961518459152052646791381975714759683952112041835807948638385881491958803646106521838233963996134930932167746919400032662527662572974702317401713323696399314273580941548571114688204692598052642106625220684364814918435092542731918567069920193017583917828217022363751030374910067048736391935527319625982798232931174388675170934377245542584047328193421477353999356073815234765184690411218605835264489459451710677956429176359219387056734192079363498923269797786944299103818366811899302714121069886349839757745618833425729746966965980153100017232540349536643961899959544182474654124259168332739195333739116044891441029598278583693455413396144093341988803394570167945645943802085088204947690464226980191864849266193253599631350803570206794937294718597384508226324506126448397217800808755351174135549657029414131076440171244030808752669994774949710235431622762141468312005435820662977400394162018903373927902451634841215071332064543194458760763997966750649193222518897589646589129279606543210310505667568132491845364962412142702608067074995356674551936024959872471160391402548172733828889487756073668573860619907654805623306690690333973241258007092720944070361338737163001636641421787491138249628637491860755522252174935180548950563590248014850945075695173425856040619695005053705586903378780456620910651364094603724660230583980472735792357526545708690458543873420427159177113243087601183012948288192639088403314129565101910037811289299790951310385176204945398199189119854757337214148547194663303740996126599766285945750076099289471532619433898103455052723931710486690626056404409407263929687554484144513650678014704336148079489733893993165435930479408650254789621474151873456549298111911662905498452799098742454990747068035327775421435361048798827335052691582989418773929060140183084466684680305553920230950789118999407344216591683275493650254032421977097107276525712469925604964343240999568381960867308620724396352338191683254975555299952370889779973465729247078351702026011701609038430104943883688484756287470057777354748922732359441677676310898432551024483351078474360303695316025531573833449292082741900410803043822641084327019540391011895384191965873291904576681310283530987616663937924099464913053821113394142718996701509499888714442955322829562864218301270169381505973345140198315145771376582201637161278847569463519655712622116117765660434883805186508076983849513002611364012844830733328870365587091131648450021979183019509987906319431327203119274434081575165237374337678713607982508144536298904601345906343531328841234187463876339486751286735561443452570456593348519451180655589934473493929510485695331264540602751038762187149525195763583907918795520793986021756206752184798393446428275167649048614143854991709483887622456658612312076675965886729639996376585446680805131913633374613576458704968814894004328794363190130986316727552745186666997241370209119658770686485937834066509191958089103579045676498938864226334804634167041109226701637686044621651379416186364465752702085001856940342245222137038566179788103628009725151973650997717074227022992143365201869726805517850713450468353919756200963136850205293841341450185276274027360998160936719965286407269185540577067719026905048140964152958514453046903072336304753452867447847148644862055065745147590486848916682705299565488171373131454621550642223236462203990487860966873540939619949460624979137596388735750130002670596956071378016792114093868987961462046888419608584747931135388993986684056406462207603225026216048599108818149890383741775142602493528635380145634584201548710268335709747077288627738540852882218583407690694698737976108867084154858613063840987359990024846486915612648469195574312333978665623999805817571475181970567921126337297935787933286611058364057678758515874500541665946646121788371058456013521557548755634864991722477104571981949308251725899788190889256974709777411123674378172182934570658637174262005933102001781263289401452309816472730713041650455000636834333272379350104903295237641532522947627395845986402824495157321963568009570532695689805498687869703431834101866517528487201468376871599569734106951938497739302166424935378468289652325340680954251828398894174054907391832707642456030217163304597755297631642852471779388632269984776627650352842116025159395429302705143455821360180019851931592635181947713498820353473327363560012410529488076079697721991682621882839093251897316221434265109355625487942815665317987064181762632143962572671231790019780226385757762260387996073446023066845377814099207546622783922476809176543148930056492603367380825273142556887559709151600555715129769478708947040663472740803084320917520587332439900772920066708969420470517711317497072264245726899713034907202162856477462322796911818526928134428454019904957991761327380634578712691887674607700696420272379564538016027544692207731111747328126437277125855730375685710423513492101911556067064549663035302281468014240590000887461693467043326720567089100627582600266828393890691962562380682011993272446839219336333366920526825250329778586711569636185767060395366888906026444164099466685002746771845630101389717074725326628348292818414075490911254267024334285240932534613793020110610494930463615931630450912400232107959919272164945563205566211792318677906102636258579082376354619630658181251527711802778472913101426713826198154715906778443522206566246958740888079917575482491135855235475601289111993788886839782194880135777065163516363015355274873662818803881006123621397124466760524906059745111481989596977945471812140785726698640317012112708787137594930150160590549488698239125347084978528541784875133609611404367969441732256638780554943953505413333070179916595597145608423440329199720581840356150177143196755469827268831992954789103049922404680576854578799027000590270727800582107760963799551709185418179924867159613013202473842721256137305546477410897479268018565824500473326178773229749161375551448852488252919259563296930723445299497347191767664559400505611866220553439659508039053454714958041034460696768281816044590852976730542094807104005293916384765884262789252439766264519962231648173981110613806452508868990550838523458010810307648148623561563104073082355311865611022806705797214173171669469546198363655635592278517284686272691421884710635225964599904454397306626407666183253657059722340512721052144206397937452748639595404425240717549625181935331458147516917471819233762935233271440298155183551762438765077415740998571636228365522489889812496254128703276261760486061743126514593153059841140689812274725008215522155669657224712407487947140403001170729171532781897041613903301091978366250201446134561284809890227854897124958704540022425310527026938473211295606415943086605006304316537141821324129230401397737913055987910794730929242528730257358949224796449355629768400884954076602929468345996492436245543948406761248169003752893918659157530056567019532614648816725615635333110660377995665934299866882513240419323187653902988304852220540883697399629860164413191465451349091573806164360440899478804011665703565803332072430097021472747241306975307660505051410419616072276355327656002699651233156357377853906512765097971311550886341908524706001642787541011264929936287798784052434845086713095976747507445286428004670446261856995671043102890934282746497088819918075955641707911890570649906033338335047945626299528135634078666565470372136074447846977640028076483824542124852080145605341820163941470735640164693427221707215783459079283983939832758263229674891222908005478747325283413550031867485141290658511324453297039096000470908675130052228886543976534096758342690312864471610689970943512561571893588785039146935813033471251106504234291251410708717441055374284103323442399512120723163797774576306540320575035375194650419848068800255776899407114613000365434846705721943714097706256621149629188927504823678853266225372143664718306126221412954583674567865570569880800011418003669197110980050168624165162023147510557439010467864323938055690269545123816052100411284937273322167189575746874683832981686494035614146872017853001278067751995882338083931879871082787544108471205139519737194278798471373656206481528516219086050354265872655688358374582711481588245357496557058748611497543021078223984569489606577205944138547074117019384919572666002299751576620670725411860108180860728058015548818985858167157495095897497505910054135652594034534606614128117210397627891547094411762719252323813581264745557341216298225651604417965121266393704370771516916012764093105721840858218362279765165446173309996326951068598707611301446662739731494118574175034437753494494126421136316057230969204849584680222694465863919999514442459929680117901519808318093645302442598551911785525423482998508421529834834946031617155374703307657780805775795757003918921972550494871860639835967141586547558638112781670286791707879467438501933271163385802839537202042912423119294120770812157275622297278625972290894813438872247494878781053477503770803624613972873219950452888936274295492176328081095094244511773757338320778620549375665265759377949025670593490984961657001073314915658656393277156191216894160567274257548227712660403370967052614501554402712038462322358850009923512754422547063797463519437493690762404740026747930382738826653839555995604856175469896825275985981274715257865223375414136921504015829721830656996209853009047322134915303316023053873185054364655441883876201742727417624866557372563077143589849716245873173935512641001201453224499462004435420423219791902385722798821035002914532568244752076975598385528657421018409976811957775997786660187553719098038819870499683482588718896782450588789961148595025919185403557716936973974824218805854695134794109837010794061532318048964255191583051367803021412563688730203186305515480914433397710517388096276384070348727255867519606288251001999351686771776201227615002692552188159211404325821610869947783823326746893311148793371896797414406652517511052134060162104635212764802998232225696013509976116656126441068201401853147610288581772468666820694940233016101396107777133957836806185791265314823393775918662955053804507044803584897711946291195315517153774960773035402403652655036276559591873448367824672085469225230138724584549277789926162653204859589923327226019593232272268624199656800710842773014669422604750709861893160119430675704429238765923624511577978292292595025406685509542855048213064601764195378741701287028521590007077302357918990826804589593995523786446933324491385958696362516148984591041066382175763781381880021651102215596006785171524406844341959543026057083099574390874417734969299238202356961168904375929471151456799757294068337330853322711986011558573456287250682018649858866569635750590164853757884832540241955983455064245464776706771284501600977460863595595464455945265025490703428760358215304513021195100254721765643326925713686903706300575205776058673390658274146620796203400591621425790875441873283794960705049092018281997332074404508252594604006903197770155418784500521330386666465072286080031451320909056804813931160064545931481258599960689422342714259175809124592544898596177229876790218869302362112405591357405530474707517421062122144725288887785606515598925977081357708651708491537639696456476407412377101809498157283094147294654411855397969801041086275943942650847510401362699280497300076590611846789115462110400168503904279577350236186462143545155643633070996409330608449539496295028891671101428270763007072541659447680923312578759035117231692528656229479218228589811683981883449967746671184992292388187424296456655720837762279955066486380696225556391617514822264114057427420882052776535047905627803523534971825888368539504749171396747278969195309017062481145336081926700961826773830739613261064339543957338508079572306296009583167256383262326206206306563889877777905059200952000681065396093271736415841864696109741050294045752338902875507373085607887517862584108141819807491430459035405039549129894606188169477198439457683266424147993953532573932011356332972169524876688968890539224371211714753517988256138679304107007771266916917779303202800698423340385835274864824556189244697667016786340146960168796070627038821556268078612389301525731952592473599872991701464719228588500180241278755760428523403378650958336248451058688873061279793158301644509659090916225617158462327847736619294571191210906643165371472029312416630158733526054170775628680274644455015689544541794506488350730737238118435517911489767811326289200346317388873852648991829677719007408669958875606126217714368114694456580349220334555292291496755195808078865092035541285557839518076544267217570890999773366541988515971331216092750586146304425060059443000697182191203919065235714912010181400129184453256502822523408892915340743350042320312867895752370549915596797351292441882535256488237224931611036293992399886184048558074939567515745354502238144474156402250644254125226840476479627923044932426519522984075823029446527752754682085712266492489290677708421483727258554286953773797355870589252862023326669206901527710411043378039499052709074528229370891180891188214035405739969941284111220777636216707730742400007316052828006626176504990234551981043287787284601813521712247770212469637421609978901287811655387148471466763184083936258871311327371584077127826560077077752221146016275243950947354797043588676580681819485986888023541303488547235023767484616452632091940515961113403798166149140046250022543371843122580302439047556706021669963204922666173692759965506609733320700841145183008358332465830938282051542568863892397675873938077872024146042704994898815957275740600880836137144314188927535678015653546222273093302644666342287336612499177984781149239811840645843673257198881501652451669383240005916674519874639476332243983719043133394155657632201295076594631388196538556020783818226609558578972264250914603962085556889175316921127105903921642036390075180737118653498177172635240002047736102146056097544226992126774094617044406945097860983135347077447592180398155445688297023218568471598575555611686776624416206748061283590565988228953038965405248750538785151113295412234041633608252085129232906322578433179884365860221207989630792083169859772242250555620312079957641636657682173145640422707088727411744829731843813959301957306289459913465977693544786233227008222207929167148119610439782436760631985949447623227174168308688538376382998601485952803111936914618089580124013562010064928926211393284183532785936095570155577446602127744550605915578898054774120162179771341090248483600610800998691591299328668343654644568312807642877252461366836249111838041017176808643346334440877414784717245586442688102071845939227887400144090360016217284107466707184322369635830642952578757058394441985261408703711657072118142065140562772286764886029344401095378578203371125357730302645187275470350002901119141052871884156211690251016469012725826002526922578475942098927383243973687046057947154945224018021865819883009983412687736701382524380889148486047598845535808784856477111442876721254814194934364066863113081688617117573774563087064027122476154871681834792765759880798833728256209156783121523011067222097556826213344936475315827880078472499423114127623491376648675210586337928482732156600793276700730618926922488429479354878116004543899009528089291016376715941133046118438821589586272790872095750347769754478821964260193702612927201354515482154738727908301844977374555927442640393521277353161527527754419744039575431158207372934323988282539990935607065092482535597592474152834494182974053646413485339667181466495428891431526961476768659076659714263170988889094126489151955761863157994636438802484882070928510208828171872018432999869103076784358005426734634919672749904337110394120004421667200520323618689628076571052193184771593551011270664459461046465062823301109927723523242464324202049677021777738047466525888441976250306777089434759035070515112725450647442530158114745478986670767681774153163038462092491521436469441692266727081374233234925275126295257730235762119501318030173781604505162046079868902460669650595832236512484941463955433905254925379549924947903785987800776279623550720665757094529121984418516077947854450207109007125625239747888023472402640647031503925756067991453116060733020707290578762675181534851730392553844522429411214530846515184089366615564180342038156589691201997779287421039158931305326380476431747640731638672700641301269994631751423979445547910429555360043258472780768579073223741067115949531204149023437837409522889972307951522323668324084028206935296725814904874820852261331131336068106769846578578315566094415458118642259576987104105367440084769697048344156670289240592947710944994714125010723683030613888465984823118101902274169482202089254533016619689036380883653398191388622973195240530711243541311578539414597869144246006532858157852047194941033114931627862383962029464320394164543555041646556866730975440721305451656216813334822719670529989470521342395915642483215034827867972457660494858112748331706652792804622610027193694066799206354059464440320963960719978969607385861548892770741401525116746675992886542106904297982046364531873481275466380302896891154271296215627875237257966950276652275329723377696094728401671190049571264821195705907478036301202142983928954384397365904421660546282925837220165092716001909520161257642886143153727233786143737399902587630585556917356438808404313615106612398642021512534655300251976146518606945462981317747020080025165835454316201961270029043392008837861931559882255784979321058148323457985084894194135274538638459601031051901679496317170666148635915039406905634727626243467334595827791784668892961616081596054138609289832764419604772569480605427167856142899798618125983390891965546970750983191534714963047757070555542914993221316137580045490385833353409102870006430966363579433537255230110965052878583101995060359120015544783124703767906975041294622868750260789022213333957624608986140121552285276284578005849285491879743796557544659637954594444950950893524274206443333130256427326019706871450905083953526394912987920605895280357019186989338655831245218872824329523206626718097455845126632695224848655775616273479981773976766862630904254311781786209632845637241264146444246572279173670853315254463677640421860623214674209683203840136456907360492504223468523456473759168722257768202207578045682558272221593259425038356777992775811899371510001111593927024942506459452355913462748984162323322483366118112148807847376288095532548774977662758177714377032529258227452583169140138887416979484049539893523209503728680653334556138350108954572349053492158292085680400774070257420731649848036285577004878694997322117090293007346462908385540916336638356367049207785054643169162063664063835671875306775940994278603836332523625352811997026577470033336035171622326134412680789597146532656976824213930811206928390735264516179806211166643224789955534657493216229929356707241765020185793916776873686926952970687800359099748388689579876082458325065628986132733298306646905447662351327589943313904667730597152817751568873160516731183149454590730797828717381146365664727879268305583075970566105599363564091460123083805740172334747480802970744691657632604163642531108661595531557963000744232900756077151110324425579330315141544486562014250626739518107976425923713658862257907119082318575030612872546975657239625019927695773772259973281294475471229879272297114233449823060398120550787894514588576998767185676743943443344199039848179980703087164509658507194904559219203450009133397890912827450788969766405003410919126388330266277021423144508107478195617967039829028592330463807400702706991420030013051253379970619498959897251974743162327592927338682284684590516779722416242913721113120764361031925997529509143348343694239515152994247646845743682073963090174524532621767861376176347138481033980982015276019405637151504018648908639371982018111700577517714755849710866637663349488537925475560311127143236501467808921766940867712168135324708339082297662390104627642014731072240733645357429283410464228750547651001112552683349810092655579055418904519226675573202836204564051198938157319749872834617642429803423209285312882152658618344347904513904089610128267043633733236927800403306138111828422645246551216569273422846212329404501770095400806418906208550721149039704487770178970207330133187620185229465739493925672197210110482631379758649506961401354928900637702070935300638848971117021120391530657838180391507255151591877739260568268984440044792712573527123039846232056617887598537714293019681487429706294987193172913014107369390764171077897551066365567099271410735242193369799090698494467504057068925490850706409329980668021241713665526201832926572022423340143118134985647117744460951280094280814269358958563396959113798325865711637726598795749251879881093604400961950652017132117767037029432733167408678663200628030963017449984694238913451921222897770018448423517378987643533206152483174739962836381509373724935204070840065060796942048232059475502875428814534587477263536260001987329693931396781283847585567279645442849613968073818280152672990776376607104286577852005918095567821367382754703033148635718420865747089011289025188584964547476455317345057270848730996373774168964862976129626572292183551900111590897944726170869734490646351658965359434711204102954552667617937440667815461232250781221598043181203970772610053635958608913601619537574981580414441355651633879867505061694018469084308702227684737552635381368194013474891770868559670613248346762798020164422279179985955495352548081713959446950976954511261450694990291216533342535006989087909103901121530120886330869685081003758816048258437696307717687454465554631891315726899322999761752055869919129431897467005410885834158200806068057488317804074781807559556633977808527624772064662142742497852833893173048444740834765837157480986611332856920564520051120331564805236990957217882900705659313101769309396787880827465414806055303546109880736488298434655958364800142927200322957152868277208379370435792879417837748812204108427123291241979860434087359224618255208256285567037747641466407207154674816267473723153605436156886250070718726100042575670880897554660516947818004797318153292492969412254576693643859619572744505416986411320675352109820874396721801512507264016811901737234730538150787003201159554763112700192010497135853673231051084272824237965331073676962459262088801363116265542466722140480973850071828250188902315629325097350786141291474296948235347138088811959398871942445996414515909733600331298207981012027824658723451985311183781397620918920278433234798557373872359358050903561160207951314500034851822995003358639168461602993643625570598915790474480381610802591756725752158446024600862750542219290061770636952475049394864960371444824141733253662934323562215455566659529240135617847880914119748695147649025662403652635925942839627186289587999031523154265917562557403592935214314812436476003056555857763960218508491692754858954831852400413048343602972510770332826854692997422353252977085358050008744685838675227841605666382780404290978186297579506823515573766904359427220988309772771387063899302978352371520531217570980943040440901385245848526121829868888277327373467269834645763764925070157038034000774249327338045455319318061019579525443048700953114893096458694999483868786638370584172164189943703978647937968396089161079000662889356946746379062267716961356902247351945998282984134938192953283229346977254728738112297212854980690173885709922812590052180770427811758475300905316881799977476596101541353768332960547484795344870962617586600390236050324236798855173886238634218605709612016716047972233194004152164489167837962792194117464703633510664238961553066757388710640910011864030024509716408876936669901821256203182232107973314377808843410957500430975158329087052913489615826786400600654454839931197820121688740438237101847860376015171353763369521026126637941852683615956265996432192045221673116834583036751888624899197939455019564432369680902568683400217924381691007343001232136000470698073729017529105926788276845619609967512706812858458628971833223095838290573942459494727201699083673469960847301359986587558025588780181401127283806570133350381618298824562177043972956201758426827841811069880956896725606779593387185299778168045291692079779804472364030663392906825248417976476897872676403209109157608882789535109472069669874600299736360774140544621695398597086481137291427731344331367689449655400449672113646537984570601825863652846283469132972690698170746681053067082068358657283436938096555493030335698864926816233319495969646814251349213517295438950135828391976912738092321098573586893564046840852212414643742215830768206164494937385263703225384068475132901691251418447920002312884917331624709320238745568768507353299968471954159232626812993298267086085906184675045081860820646518046763987452257472883460551537831338763003257416569358674493322399233762145685768923609568474869832601192901792941046766043910116342181273189423722974693023121225852007998010306288115428845810060084722790199163747458316145296739056938647999871340349991359993993624268614810980803403663105341981090786755578070589241719272090174132334720103352867494035968077688765501237366059469903103356464858196187885980113067174635975068546338071376319707314884666038951379661895432519024737322783852863731611598840522385526053731203915433517869982138986497149333491629838564726893538145797180539744529146206985131836146574209905909962790259595305299259843139058139284612655668746188304290521276271883858518223220729643647327854935694634490236942045443149719868432361025997275317621920492222114877267466289692265305454728145463517982084743541083344103315175741121150824235908710864708752322619480576049594910608464425668268457451092657559830797014370621804964306462154282552208340725273926810745646525592279062450949147991376874261230155726555815706198659947029951963042462520606487594242495877392980696600172530573284017222309856133856960252418927888793250267929769628033640147394226520565490763859331379142733442450130050498446354829234007775711271560475541644630809452735423526782207339458253420821818311151524294339170290246419525989904155398629766504082957229518018130968603716166582890821049883390514193070893238946431820546971513425734899606051140605938313224046724322246832169442330980294565696024784893094649730683240406667113430322561162390185063511078333488491797239012571025329379948888524827430309508560084826970877307962177198899379028768974683124973170062136984069195073483798899687628254043342965341516205290768155007187160845144362107390449890543644562620961584083421220814419287002986805272618065029009363864511219797446082361011294184816936811294145002302638128470525802070243389504495573235988987542606739141056314622350515344954036304509113666450507864975328366135760192614241187021879253277807418637327364168295025539472281880589550835859179782593138423070635388183225559104243739758228133536413553657963062158786966267819975372030919865475034040685267403260284339497683276691817299999419927898180410874265233941494240483772968615823043306250166218661643475670471372712557663164105232704073373988979071035924526620468003925817980268691327463599655392644018035900782381633104143030340302864130415385237894050689306810670875391858640127599341819742496410645244153913936918561870111753142107886221375389229128889963755987611808909085352231768643317316680945436714484292983459601561211951400147742014653620471561972242001922618429371775578091693589860143154557744186192731368174346972790768151852830398406154031071265677144615149301955644164556604299000319987068328740211696761725174132193947610699687751158943564430462683268066244722215745981674693857586987810824095893847369945513383173251795223747310312810418665489326464936663909936386629219544207815867549716401154876878055696341079469938620485068016740943979789126515601180859940855575832174223016695426758020279809580199999431318010971291425758613298812449282589050726366459090271523140444606834993186233823134501222248924946589154756673736569126119297721656988513501069858211841825438654607502532753852595727462290985929924104912415316889564821952708509839789980131277640944831582840466477952471311525031070374710518928050089812467151751311180914673976500625082656943793942256112487035936954209749803276243868525405547788625481407168019401848724869992957832840832737260319746920558732089568135884832676816932612713901816000922690558746111534653202018739474917657403948286225236234402862043239989688016527954200506223229665024953733485771431934791676143378649685155057788775962365697744972256924714745153550910934484966264484946655303101355927404787740989931518390621139069648034618398851899431838461061135890421261488046730302953551914508170928341865644195864671586476104687721940049484898790897962412009418242148878703704798607145580988797939839183033355248609213512885182555835602036129865600437981798148400532164757243601370110633179527478971054756945651448067505713878484780209764656466873989255789873974530890457452203583139363407156474389033052196867697789391407652377732683238100342727951049202786778900776761971252570113083513739147290518123819961199625969245335641876645352258757897316522430263534786582506270217489749937242877885092159765449928334590485159236677949618408323808494423656422568218677384244501936231704751158304524552932221635102659932369894372871988017152954766562957629317742508703607563639799973392066394029679471417002253724973885635565807695112610518630205091299381093265090663095502394957627167365219182828816660413832329336305677776002638969810490354329843755254153875504056000865586049923110639026265986961890264280776608998964525261557542436967397767860691814549949611516999190283693391314766771122360938828850912147052154314397937271715335138350778578464340018144096847987019763588077434423604630150832060553852511253230372874830932751422522381810071964167682414628220587094393846116166557117470293225126468579673793444370637389750163696070621115792941031451056114095301626360607856496073707696230220893014556993662562248834252287361800448988856275406645930762550926256133381550796167290071206445420836908720384863903031057489837486807730007184474661357103723387906799907688134637609950724571210736402225447737995774225062718709320560846498192670722591606107555695487089897530059483734745826786515226863570420384793101176685969506666362245441337967555364357258935021362284893199459189079586103387159661610766770386138125789769204387652623913961113421062022911403699949520106221169877780841748497360356610051143354052454268674315490531488257175768909204951909276385844845447005893525716832391943538399143293912930945587593517414388030197050295593778691227765664564304256526795055348802691955574674603796364662635675431541282008421484700657182818672531571815809756129215010163236035831612943249215890935291570309753325802821011833806766120642208617157781771592358475121009633752900125149794670882396711872165128194370786983347169533839500324296353449294994413613559006637882882637517985966329166217112039465086614913042432340159389995293792412106576073375680813392986622460030256938607114309987242301715142581352093762361401435768631532549880946362904978308035763256720966861092689456269273122845378007951836671678570368051886103423349336767952016109880562728902727080481149628983820353942018928620958174001073993890747495581241884524636294105088473747021383826804444577832997971729433798713230932078113181934876809372949171485203015154420013212286580218262587446692992400445495819679485799753634396341420307530921179574243063858389345269786178502782751232485624815398337367940565896417715093301395515019957916056537342918400930994485603171769012916658749333280361647066638497068321333187966879140719901888024104815685645947187670091441551420030022277800309595592400364303495370205862175820122681728886547319496699371793829034395161465848715362843027564115955227584099553110603748950677921284929506873717345077251564894902779017621409485710797504995278673334352030777803019783162800004170098588728985765057247765307961221110832235126074448207571907763499601713738634393632253266642561717971726598011266067306445652889191389599047413499482534528436735977059735683607261272380027125746451454855263188307092761519591024359550516684568100535092363803126937277140271357007277847801865142025806486275361485322389884009725788228818040998634628090361048765876009847166219571176553730802024144498805623075798652834227410162218427983182785589332340836239289356635371938796002682337891673429076874688027447085690132650085922906569040007438200902699535418068513780953124034178728525472121153638275214840460673574422567217109903378424366516963468953078419114975727230387185342578929475922138049046870099131763214548764892856325887152949130359138192254969418573199991903262524499953173719658289576228162875044436962191348406017698180477559091692363421804475562091022899928557910143279214273944762004731218424762091607310375892111061979313724088795242673875162526535757909473238832285868756562666415286913112852420069104362019489270016882292408640232346922686868620737271254409077336768383801135289147012369565357205538841164846329864106722759479205080765379303870357684335476689515498137887340275660395743521178587212488237941531815961678410776746374747705382359622659528638682087548769186191844789647062909245416676938139280363335031765531587470689406017667571499660644586389840790755406281885268813467359870674222527762209538997646589328080221081009009468507693952610095159975357945885867878670828867454648100477386156172818236273507564469929431829505642528141798692209981401352818320361980435024648392896685637916566760525053776000043778419580474099980937411597712149288512170415282009943728306135214718047525837447951495673691582554593702863727460684286354827481184820392144898721421994316507060102894345550004452973782966162685303084326823704447352272935147170886680041933249894133678352767765169056883837436979716338772881875078138525202245447904711768046757971852655066336471608190919558819135011075898413377526784931427765125528665360090456473876789793133170574076837861647910320870123808811083773053882730651374807358438037049663244156926828388761652191613831651909109327834841436220109713213430245587917736203236283636811787606009300100055526533518575540058402718309346336106711759116528085436608130443324766417552618523634788696651678653329114713697736485246639119869773016127082191365708867988080799021749951297937655692732730533071474872067377697619128813332399462635863763014479411367729846847342787798664120592789833374162754890545099256735473321826621508985619606105069883431583168177045787305823047511629930818061479737666538901900844526423050074851912754583341288749031715616589235157877911792836588480475496695806962005453348801203374852818671500548298313735489345906813276576362219174213329578414981998353345117449667256866253347619092311404538116987469267984815465536114256843177119172941853113173938604148774698179557878276828725549985368502389698313199216194576568029123958056021940108808722472679681189264947742804190102628590085373402099727954405805159118289746436063628702327393096239525911439903671789690092951545493543659842290216914019601113756545984691723371999479344705557883023590019457749734337031932152062327696408234638359300170829447788418821159183667037517491896063651592036585008115543504616116204448323317319449311338106051606075436488314920008344363315220553464890744844879732746392997526778707816464250566094353711168419921724834810632129673962689667632148930305999932154586955219405527872981368605493785266718924521807993985176900176194577475132599998038771536737656288646660400531534949760726354835961590426169551866107551488192946510892488232715808922612030304408907606927603255449045786305152815348117977254994580108573230536663600849467193251161117532655978338083135257935027409557427688079239675137911588848264894057052159061259609288291206302818483097911758095989970440151167323796961817396416306623812604302930844240073164738686439503305827170787274443979535782781110662348076096034586461076398296399362798472615269339485504096649280598098019395057765203855473772682581958867610736174855525617263485279661218117207904741954134545977181224737210207033907945702439957548871521843984697921808545877316558684966101250041808492456820408903384094064172174175320926024495318817653119244833732237729870027356145955737161993393666098768529730359398111895085907625120252097236672985272138697674638940982043310390637012657058380465404310164119513025702190060243101259256844092939354985219421060888601006825937948407979196965276140988932661472925014402169524179354658327023796326546113893983267521454044169810904454787813252216259106708940568665880697603417271255532663503790488690875744599460557765903526005792176000525913256391848315084256569262589052442734027528385807045878863176573301976369119341244607767298293359855592469824968136521561958448928821970610468825624061587461931731938259279403209057276315306141423169288511832366285989677516907264085055379144616048212076883468848049185306705912391922136975542012347707951900458482965550916896528359846462962321095809413052287985771322869335855740502917641213803765968618022046466195174140806328627869005872001194888177354955911952295818600883604608096595081586588698473656948141660748817505835590405519237067365243537138524340904114846170975641789329930747022712628201834452856322194382148693729488469699296554774435448449545361841831866798799972077276236403162649600543600643633487766178607098694607866952404759315945422786658859174185922745758607631976822955617086210147319543187771660687116235063834554424417358099136181149046170981570073024457792204314846238998389646156283254798769765283996842948776201549006783290656669786503417388146442173044094336109614084026749858703362816796205160330260240701360622602259594176817736171285428205936788212938011155415195252330189907508782397702141121152782926749133926199244636746020003466582754685439875618375956902582432760675395393836697663196981037529119348797951155328645618716539342882722468391629043716305645107492691209535332343486739855116630199174739570657963832711452454412723364453018650015570173483303407375769327186520262426024072406487411960138007750400867952040364413085271044242978814172389792964238563510322144154495325247252076755382330258098521168226508382177289927248386507968909012237455343315827577364453320944039543459685728314360285567775810023762232992605139023908696863713107758359215392260104426630674888461889234197824963565961962118330532165026892287068217573819695853838871579035041461699337553095240755665207014107168574000025236098150328409834455153191060686603368673326350445421291487831054743314096636032420788057965591394285369830924438585638261046809681402170557678736730670808021469670827696010066987332086964343318844388204902481804152475334860552532855414411366003063024642479915843449817210937129064987715431606450005652367671254709424477477451760649116479812188073993351550660305776515691804173902309803762689513959527864761086875459362466437961489451087220133387760617313805824482368690759100984180946348336242328706021259881000942227809104360341255269907575807316695057697384373921803503130196291380729104103302270020146877476573533614350086678827670307862087431014752745662905211145140701954266307338460253834917204978559651297802687708580635333901639915762835642177467436181268937546077899908659249689097581161704304629759495083995107232275454436743563730410856383630888995931156336010046448709780704120991538466833147859306351945768249275155811305513481643450594010810925168903329901186399611920113834980355099959512585107491040343929113195688302155998992462198364324332158744312712287773188193541930300490851300626647008622259505633811013528305492018698666955924449683062106644221648861328990903854582198755350529198147829678069587346841349073738050468547995107238451085889208069338656044263219578388913417215356598854821807356013012422627040719698542900954946921763995471161259210036233890727215718528466446397329475458336569799786988099271415212898378838909591868868365089461427896967167669588242166824306307887642821640485480033849707342349963923990356551702446884005075074271246603694134183441769341670364704653688764482756359216983312284917881933528844416018538841389761985031907847522600601739560904134670984800354048566554309695065097174602617497329421114046278362411327096209394469446681122180007143227140995218137961501454247903213930909875039083119036440025911042726893005517011337807928632080237539924278941783617868623047445788616658773929927276846500948154251460437888696749904544066279427661107281050508134024140381143699154417841728669229894137171931950664372765388004517573190292890695025672352402673533667717535697805704548877616016442511210030104730619918234813388384027880930132670157590958811723366684358804863925785821181405292010714825636755691887815448447921922689124172442121478617638562402364031026639860969379965797257756940045832142198507748100880051652920917147880541493532643768005895932036191996884549890814876378236495057405014076543395736657089256492759405107631596696204127085002944062666630410413774826980647420901788743736288657785682411029520798884168873153299184193900761528495637407492565699888473902699965041829705738440391108806629340146568779704202870742904217066872831535060366191115192836349082985495889288542835635474694793756779560596836490721271419807865547310572837962891647052945187923339994996175900303223687500219286865737017963887593269455722462444147716084566400438409926031185444624973190194068457328120586404293095036938998968263134867765344371882352100642191443067635014594648012537762178595671916247765937853964710311977454731901583637501862408200941587674209408472123002394391177035370196732083774772415057826459855616314339737163710177902710745565857531976811556724633842036241113898969022754923135491537273746392828168239857716419248357804682652445346010393834775199232706019006560643285441125876074110347198269747943738733580303303443409837947669111765382411450649589379563918267876589999595837573288188654053581754470126435991494281061234273746769495399314531762768132104656344511946749844771973039723387744710079832899454177170845572105738411443010593407024758878975647415360595627305198713467521609637792801689609267421282842728611949633847517006053472224788546438627162629848066559527567473015657040919034823547761835115796615833527069743810960584506638922949934366430429767812833109868783773432731176725693005834701316350563583303894975667222863726828290756795165000735476949554397836818664633389514041243977090999110040384477816844197436222280973965391005515372643241897930844860806907380338432039734496061308727394110571200435239229395760585838587679795006709640969036554884908334714526587091142065977732371973761735608063592566375033260834081527586549149255953119826414018575323724186417873340406160486833841681104004200439034063144784925575594390163568827869478001983561446396855252136633122290683812249274136338693168368280577566715194110334291567960323393586937566290475579799960591392825221481190650578775692465083509796262223089212447213765636248012824216313156450222493222936009110323186376484640062186953480678962333883916580123622382208612585021084663275965299129940021501450246604312981697838871400149245327171004292403616595055752909933131588176966758782046132991513442153824005995784777220112974485887982699429819473264805905980071077081216069681707974984591726125796680276235411723798365945378091971488320027836493039039190052848713675515062651781499821174664872224392656737765450802944247695772762249959066317923909680602594840319681504442502192831214061165574091343083414217937363987803889661757254174700678108859066106484574602798343094215702392753148380265958591552775394236788490342931891994075808740489291400857826294880381519459972943270654178372461363943723597828155240976752177200091656563760382472212744702437592684391020698286694360637453793558091945791189907094613687623428897179440772913846431636812529236045299435102232555143969093869989236889014020991731834911625052793444461725502685942174224768432718283915836199436554605181760140793513614730668665838196934594626550414471815346448913262697373981321856551654303672461582587186649340346285415240895329152813578615087108341696710063141933172690164199899421217291456708002812632715099896983791102487225107317855068123078824374720994131971736850550372828901252998966030788363956265875187612533526261106951316127547975080986196431007180654007475385115044325689563229945414168431913654218039792380827202945478381182819400132864700719595104976313236870944696421280907117450182590603508028190812328332653945640088720630611333648044411802367898687439829028150392729273082218177456320355185138203164099879104477525551399142314190867814555675931692139518985871653519630941013486944097364475598754525717381651586806065327472126041650925652515490867848830441683897699320716093927550207842004955588856507360567586860156526445030126651758274540301407546610057200221953450152953778709025106630169438740630482812072914463822704839411956575984534357402800066051221255415848275253753848509530761368676499582058854078253253537737699538466647305946476309527018259968253958205073602990583386398374782647325255114166405235093212478055320638843795550723294826995718312451191401418511569791074649892387780186636607128608518093367316821652191819674142807342761157262227015501374094183743765033389274349790057161315005478420940696700817878825275135281712791117613139011872250645330342532862528392080996828042767929127906290834954673964194338373948518548113642804285368113081603732797299294956894566400849672559727780918496303163186804182228491851612892212084313580330158585951520995871915755799519861406270395959135463386918878596898275461626252921297265606175135011205778043724453766366810315732606015412459402794938549839424103665288517488303550919998774715171556692584584745898773006561419046481607590492768704140535243995126625338279674608089995656298315247353979224355917021034716728223503214530636428495674041162620081108035337319221910070962369980849044977797431657676014619982818495039254260446553193461099280104817047953079434627490726878766890501581602070477600831396334343477936786771077241675643869726323009338593218584498062468823683388181066970601643008356028278271977648926617669553746673457742458771145093050831110840532686132216288576635830014809089437364636242453559626855139535589944697250300562040191313380310468483979449430028535292985010403575783831559799642507680435257483720101830596283083802647776288682487534894533990117386403701949089240505892390139183176217733043206947329663047188073343701044545132072961190865388601148101764200880044225190294703405694446675963840872573375744547230650214075157645614608935214709074639661676006375675519274398662767877092440717979827873004114817664567945436336491669345177202868939634527635733828172929313264228407922891294944226559445191524761156447462446334637829652717731433534794802396803243205851063200948859069597647690247708159499995140717319028292957739163408757819462038581952052294069826822300911692559927561761261770978973224428334078834597082311703681272110696522652033625947429896224517196366107523585024844589404054461224398541264837929688965274795694272301924592569658922244591488666466980633650660542317283794101963968819422406303106977704269773411844257461506028067492402363099339632680402245073860155700601901114767565993661110804750060092330866773557746094182505293370283535060964388871754342520326481778194597462242780600545442078984660063883441912736095473554681189638991134775243914967210819470982936338744407591238897848518569791796557262111615580160419160722813228658061814323224888353885081427004568406971956321701029563874422580341985398797624063945774284724373734016798146330018244961121666173503558901700759457807258146070939784170459406972086422481740483792342293680746529969035757514435224846784453509259115279822026625832024564610901500032383951675622754787297882379072397703819300175633001823499800290388055470436401929973133251301371916474715879283324013199743994015656908837079674524731200098104195659227078304328413247015083991551497074824567788543804332314885084641062116041782772168049726752054652814411942663543299718770272865155352511242548567130514893954979339150331784332744822806626423401130281378336673633229188534832377241561212492714765284645065966111755652259498412756806931972571753713012432317467583520984145455368495112043824976466468285276305321355120732383728788228657451276759110968527594139744942167422801020785510452468255158601119975672906290215812062233171106183924530536822408404023069219147175205759368702080110773016045723361979329056343255615112199395636522223637271961706707835507935497995834011084570750262030686191758022049155657842813993588462676177527560473165354161351027522991704653795232198574484484636223709884158526216086064385698882374056563926004425990303898063178511952242419240683222399001416257700120144021728995381120839002871981161529191527895604689326943506586734321460241015487169852238413459597443319605755007839774878413108530165154227359315539982247242992219148283098273769754822221977211186491164030869427989317416372337197509632111895378723579827952614819382352753225770430284013437572732252361322729432586604155302204980484608365479162664526529197316509305864819522983792936620763177272291728729681486541809736094647965011633004422870628163834005618747961237417866330159115752309936946687877174732891436206087226882307666149716584185804268479040748336752539454953238953712702950508990297622596723341399141596179986613686336294924923096583399775033706845969599488971874603778166119776632347845805512861032362689114533136086511761419228809699489843857945775675519828409509329772652199764446065865809332554644983098524241350987908400486984413396131472726731416882448602974733976790956832613021117732392048300549397644182334556866627583530853579454930212503717249719921216968830694890347040362346749463294409629451829633029758764128091404631909919867315997872090519806856514174355554508045330759226685055507136299696790107897508411310194080483166953900360137113177263959686629686375027922667456430162932752102694108853143075139584319972118750604717202790223164981996007011289216974322794158065073368400037346865892562276463590611607673506060299973338483472272312426042958174986889452697941683893852663886277211174367097071580774435682361537692148065034877382856181416907480092837020053620418720242455039108579193388963335847004620030886146340178230085593826316056531714003686197220638030732149830791916791560440479095129516274483891446249615032604968800361496496807435696619733616728035113271572510369811911488192598955479079378789677725587366862587525537334366278846605070328754459354545495083637723348493291857933558983040531451706192039635859943125840806652992500164107498795648332898324780284349369335210359064208732032269808785110841161726987320811442136697935874302572041221137717442387571804602451754604594238172771918497259985539709520893030226019898682957643150276812594335549588077925551095720652952744084908483213810369175819947555272315587667944094269043116004364641127523011858866187201112856184923037975426280937498394945101854933840516731648126084144304027660258581785784970543909239755088064312461887548462987580361583650986099167358970739336430245244186745050308154410263104909396272653063829063474806489582371093182193976186694412643082901432333808732065749036827708962198207394501474472671721565919848094927760325937953923397078955277916660913401604313476383062716898964038823386907639018620983814964528925311345265797069791983111743511185553576353200928507548576679415966687740825324982655481127551708354370510149196063383413489351659705928733591532649101922801743446807582997658157838491026117653941840646704089390462587564962064856536840687025630634418331126366673908060873837925755528147166585822784486014450896250201855704091091706200024551482452352355142925357591531003523949760804606783259743476039123373731102825941910696996384815378085132260217822912764791570442741141020399798134624040737232271830692825539739684965832742858031612890644957414297423876423662253704593118970758717220338827102850731037725454533125890525159251244576606039575415021585693190121921521230424892166424734873540896224622392889522303143958133111692779668761027692574674382567153682693116563025888372293392793296232141939952072449190805128334621410595653702967332377667918081402136743828317333358613580660244025664038379163612409858734438705698464462485699056604486023837026036314004713297426411408202517656989754005232897980340676461750376135052095532625262072544856467337129568006292029651052219286173012594413469498746289067269218062127541023087730990373080807671681329550546641339543369917470482654779263129969518783388925287517018360714307101430032139383923226379362803209913369932419763167482248332747543136621063834216617459372619829359208038506529298659944204667878917562388287749294102157723470145152749380062700891083055274590013919506387343215055582825188370747258757178351598298207451839178445853032393441071048851525731553976169537902704414318604698491020070309240707086063564358233201214017991918965295264053051659534043193998264981287810077372002002576038229966811895074159263349733379901832790034748024055712990758273458087387861261618164759985643739528881703796309618408570740507869980371239455659999333969387115627762547437104748674737169650542474665203874374423416329112971033496305803362083513782513261891503136672454001990267811596952384982721975228241649729329078228356852857341317314582754414721891929681701811432032343783516697076489984789053166908389122408979910641616209613184172784764584500139404665775243160881391950379871542844983416871702610308926350330212928019234704784829582568593102020106836551858852619629509368345370464038085951270537726258203958641552045650553792829911207066421679155689576982588788762813985203085782418310353385035346867697519352786866680271876549050549700588287893100096205684965043340314820018671583584053839832039556420482675075899525430166460337551923234051174611101824778156618042107918502848018986276588762877946986840885820307063715383917479523664467164091726317907238823044754602683094427163649739692881401638427263733020944420622422856220278028629955962648773299523451458440618760111293256242931659780826625911339893469468292132577177678360745829230720202424653898308726249995831122842450841436136909179867436872755422609973826890173740509509945947006108506939575717265370030376195764192395219958214685979851201173837471420441723619272251448234052452828773952810165733285095073870674518011875295480205260980104674483236628766672418356493303265149634461747325520063206071528822683911539047035232786124934886900613287354147169529549817961037297309746081414877062892696762345913615572016395662793337278041324060624506214787393002088290898136387256067821742625170983360312104953839577095468448526562058350818585215563817911575338853193040092219972163221678571373699050472048281867329610068324968566376612004272366384981057661023679893664094545800434208932963222989035963511064657249758593034564618314584629995489875145170151357281676700660234145140107581033601388155950291806303373415944637797038877217864612693627761572906538441340253089435961698861700262775138775384695873388190169015353312014990068327104698830070157643109486509869533832573089498336986645007825264027670596519129178767933700433335167194706741168470277492408829651861888845133877348927418296893800773429763770749994638820640239118911303830959979944229509108188701647187901304237055376065800414279127300183404630308357275027781380664939625642646879440836737821504340431730648501429561139017667709164500753780184540364255261442478991611348377223113796291749945057782006717173999636910246519208213916044916485059250288329504926775331027657673728275796332160489773910686945558171423616848932585077978731672512891508772640358801941727034439304910678567371251266271205049207891217801946308235569531462270343212224624455706665578067834273796601801503327262717552074003375287831103942554884442041788567567479609119382824052047200350342631303134562350290627398280292020221869067520096468096486148410999530916735050719063849518255103768309367941549473709692131279854691848840662728059991265179908207215248404570320103728600752985398985705060964393213603415447566770800756604899037068812540644899460102708488905406299833675693306560962066810486487893137330977102214985356587464410481726026010839707478422135304801759953201964997805412387618436812271503677140488413268577184040628479863548084192706475476879623469350638791276300736887739635646931558571181884310590336118865073797642065939302107328814170347405063216372541042939512536320170791145506390453512993462915539097509136022634007397907616421250162847917420209150244601867380472647415567352617516908862359591786828607329550097701199724954019262323105288409360853538481247287069675804763605667105827075829712416140284151409921835595975612818662245509526857759624383755239334217248106725754755959123032976508477544647773498151951886225111055138886801969933546459387821004237725014848229510434657258432403495904588955382402594775330518826860858296743747711057771991736107009763877670546922644914677747447522819304219333633135391627829683416290504959679632956323909755765121643693196833552556292887240857093488201863296022490513253566096946185378298224973807876043038992709404814748002268337837763186174323923995619468480060291710707417507721918008820407809504093270747876382426504050080638896735341370878802986034872178748838380472154917974795234332876192715306257001386659212771858280904803067456302575212744758536659793475065483969390237804671059534202992368120750118497421909758995313537315944375898573333924974783748665253261972831493500592228916653109578581112644136372863107172469831334445801941087962961891707817588432614091925268445486132935282257244234302131320229232565261021936209444795347735321974723742260860126611733341312651792637257183453899557968117227075868689838928343922212177703829790020910301609725071792217213417423799615306876572505963108689498941275855772838218598919171417780655888317362463915382758718608234832509548606167861415420985425904896383403708129898786376910447367318841775448492041696416802761048449344217899035247602423811673732499159035245190724556369035057690272930041449440992349890414645321473746909050817359966912832740202791705961763575254141507747295634715868537177630952694533356455476785300024764199589276877520191263980732963627793685127855234190529452157556296669581587959445168278361216117185012136190902999955172091250140394756469905816418760338189080442914398098887308804699833801502815971985781972985125932313909208164931424419879110580666485655630128038276355653254709358177192578512583469474901290219443211440477989619224175838043272027696644458562559150451756445804634480649125722335259170809880472393743265556993301446073137398798678026943434049710840932411158129570099163327856039435708506026638937073278374146703731284115928422917698302337106179777981097558332098967686912084193685466423279224175149382604976490183342824570862021662052164014977700086691678918379382024594645838947414153365520893612865918567849438046856015319890319044129750152593398573155401822839195184163354399678898065465930007496325756720099691153145953804091965110585766296430348181345193634945067179561558314192489426315872356161538746902766088906120220366620096667708016539362181424277066058708744795317544012225680350298663693064777422176162772466227089526233824398666515527091796262625863960871643727430344253421102307272327423241609064914686279922127067730159070066392276404689794095618007661336361946886248741892381073893444683580594494059552223215280652618074260305655299655229503987985220464746293270221327968079917750018189008296358277751406300276398812224939676370966098056781338441948113601662261655413433091110019100518951533750991438511868562227795249003690465869902456593147714978769729061979691797612765133416471622190778910341189527182053643197607638544311638752179088446817302578875545989618642490923324282201837879718625385052807228542369999888993151523850876118784490661210067266417838818728531602124848670076889190051709048022640877538151485792188479714805406237212258529075049427932152336467603527499392180987621583203253934462329769961653547949069055406284452010794736819846621452978945135945340957619841444139472272871382263785598868088575859252924293689340710767744128659247493376277156284996282266314517118924657988938998356197895283093099178292288621035601060776984846496507761400244358595524913145810136723983232558115916289794255376665236546873643466436690064235619157181125030371121220210386420714429509782403911137703373933579815171171014569151040903542019711471286263083278675757345027579059400834991740274697430695957343269635060112978199849872819293106141006644561904536705398633940623038836384972007560499518878815207810629610506448567244730306755202405203823995248389910815108965959529674224672250667034418715785763285085856220720751384694601077285495233985260749042832253597474209278477637639329102325383413102118923797932527523333768208938583483956803555894749796082403510854823962155410793727882984801422453550050125107192546182055074003774276453919823961899547487638294818278300997055703497042929532707159299064657923045926737116710633966015791609873989161714528050729784789658427383894951090429039689311086566005232540066517037898387630673776400714610534886225298718515798284847445861738485395893723753436291349639905983134828660427311675300624137703003206888884301168582061065978043869470323471747292224145190213462498256515297521096176053485285773656594546561028891683553087699659445223993508574746761914680296836922429141628545346484110767269400692730233022217803156655722186166940505376946213524842449237591211988781887553836956745737972226496075606539318431595161026412315763841890162756700211244091651689113234381249204820263311873488141617714477553197821572233598229552202982532301736368968602390501635900096285068468071401721301135344102702304538969864945607071909262913522886344821314010589504271285353432087891501831106763679922920234269828905635168554803435493586682747360422714063980652767513658222992281345577211209109051666095199427691009345521489846130074099119688877312859118460016187767536150211277797255523227149021855960796426978976096254635900068323663275335133933251032432982614923999548514039601710000010351575870506994888976833821983704286596271618301156159531429411800355791966806379954432756155288437754603778571571317372430027256937374454918247507519841058970331599385730022847438584987857175307629265364811648178284179990576870721390534321923806801152436038263415024362396927924886064196917852857432352533419894562485635292595733349505733139526332234318389382575031907588246388446297591998340455826115267690960974013069378444096798577056455457563270579886874480436210263037166877985506004958279865885059099319631806006354530616482686220964375152254516999682638819725010028254440337911741338405332568629667633281876328124309966129178197911094309061144991024468864323564442199314750564842473027331651838053570733124957170149680108733112682503724458572840790831339717079156482869922918622188481791780617070977800199933085289744694796148333681388013009833585284872490611426193975419158765948068030362734826189573830595299827561459385647421287925454921387759063380386719360941193421854743383018284417997669009065901444267381771849085993555303672557331649091690545967748464637415835799578255762560369741000513955900040415451834885943012863723725991321493776465601938330917034826362127417191694920323512217159950279278177384631488724369216443149213841864134710008002926364355596241743839142269201153202478628648451426522575721468086741289569703288758176482817717532569119026434614159729026782505267027958643571378790967791917837228754764555013070803890205180911164191088482661860495127867942197318766074102333248484629820278954369508160010097929096098374143152302626009985517630577285987595020082623104710990767735461697914941379963440913908458209602226820798627369781082991066235645423189258105547515546020254803695314798455745544703814446325561800253129166464920797905983075893013179129690706511646066925107254280375717379273125739795851640911929478918583210480042370264348564338598776528690054778818880952443859102030603750711515006070410467261645152082832296770825570258867192976019943104510507335877748282384917211215954910622263001033977004692361687036785089201061814081273043367934470033619195086495939077993136205921620494600099508631647015111308017979576471195331254216353732787544370731388233423640855272398440394288082775969995552376990336422489852834507915873503171832340993259918060657333870900517902417249887054334192121252210393486932882509736167490422519771775695049273215335419441493349255777005252664455855741088214228609096622559928411582140783051932480742845392095180081803095121527679766951236342126278319095655011445374201657346818246522972657627724630622089528354677814668892422492572126352609493642983276889103496657273450356317899821546578249100159765986591547514420895788836107187043239759650031150385050835904690339918520718825093251181334125405270882365225573544747196301333599401337525566691039583374087367512312810718527404664944569493728643496316239464911585661814946472859545724386617598159387761572847808340485684994358316156948100468835241665751745236403158738135882479060820439993488532279070590824695312106088649087540047658421732459802170526985540999144291824536092515353996670673914681348737479387981876244048479290634889172759296184032988478137007020971080737940057909401688151630289717870730869056178667536619799127446590158115011276792925379995008570394864348939150415419021853425042084927230258759965346841041499956563607143021845443706422773895970027232319846670396722481899460438504204827102689536364198246899333292100060343045588558820171744151156651302104451508129658601505237710401450406366767273439937516805247862473152865206850495884819986929939518938563993352452149892042138417935976764604497618874908432132531469457549128493024147381165224480638343885050900494909445709666388262863095916571701885071928543967771948683327191294346420427815325306488359720806451453151655151139073059929204815652542906256645372742795147700284928895836045545048884479858046394910160331985848694687367529611893834883060843169912677446675734648072178862861893566543645361391939844240999213017971281500624693645569335741289265499857026961449235492445011051200659338074842009641944308920440354460030137480690385643884074456366439842785718518381246886954803420842080072252479831316510757761389818050394926199063354840991564179756583754455012159076477453830077968243025007622930163833626802304065359266897556043609604699020490530032886870394013613553156517958912931645518791754912994339136088982333215346022508687708553100387233335202643939461923361196619503569888140747796973598844504923107223728079582385462877606294676554420898457680181329668342724067195910819321241625085823321118409149140712970467589405378103092797414247595497239264011262438354511754301199006929449615503770973405111942490049996660238581379720131835518583328563419505891394911302322632723642637786347243986145394889092729524781854016439764522702308814846367729531190275969639657482695485341272780326148871612283898867690852772311803590935957743865479537355596369598807488953583584611608890453549829658349411285026636090074221780379449634299004690137721729424613251810300475622452770922158722403721654399075002790042367127912534136134227614676162505883207456652115574036353751661001286823415715978672570729499388629584064635028171430680891023982544152231491408881742798315228814516212047230064213698230136595263159478116998420961682124306626064360672814575783403589379292447944371048469416491685110518810844709441406114098658114559828790521493564007909001059604695690228379315118984991886335535753310073674639486281503440259911935789949104176521364485859995587075369817863918146082537233588806222213537977572423786945045175656895562960103010849065839394436881884951253546383587934634676202202022654553281859233030396213226648027620309089859853886116986155161465804511059391901180952865819018025705928741889435587008968649103959546874372779370209400225913481897152095247997503658748928904211155635377503145588625394018409121116615938704461152278052287023362036199517190428083378573921720318347148841395905946073213796036635941428506059284657373369948250653462937927134720032604346628694957044136539459293506583585794141765254305054325024621824951281479641580259351169495813042538249247530328812552049813531886038917951463410725019221590028363653774430970475906900866923159348462209542564641948338908377429673442324841865848185241319468708876190731536868290303629835253714838258487248384570398994910680650352769651296369066645551382030073683394981852244320967830477044726510519453197682599216774879203975362466338978425578879214023801620354729263069757118032337423560207854748724766392032657256603337621071460260397265343680515222127699886492179720683391925187138928309856704287980596908268508715693872688254397032389786737520558266341344586481812546697283146228063105275225672609062234143453125642611807740675135998452211070365801128065512611529173443002965196220104715652226427098078014027637781193703162150471394240955916388291084251957862188474246151819121982322033579189155351543423650656833864434302552504583565675699749021590106029268055516184311140673491736081731685074983580298107865066478012712387435230339882228015970773131250146824879100429616815333577505931500432939010378712380108632175981065892813536372121903354622722319458692707406748536500425273067335585557159444883686518359244360417465038756536325365153339087767195959713216109033853652002886334529453758288863634170818119962032496541191364631822573444929655100057902106079517351247216056281308587786541627215178814871802166367583538027454366990349381149815232231491566270243456999639250459757064842776703670160070094138064541278227937845517266161803671341626839419032010836531298419212527902286847468085427525301037105215898362548759178371433160051733396099217694361479346065430876732071659300447893104722695749055326943415814942138992312415652452240789955561152056153493352577888413944117343542903514057591194203527253399327372738147836467622956132578121322901663416592181596231498983138313960366503169030173523842659491705647030988641701330154125137875865298037685797943441826694005184518037544387369969373516303214894502517960915551304211303323656193564204547365565388644996570114774925962422098250253923617175973654052029240305821963645219871383195957136691502457946783326667883908742761532388941036502711184980962590195801458571942120432190617976710247081085115532919377569959100655488792368725597723972342187517278354697467084044051896743350091121567628307358735625768194586991433983001081556343743617637680098598162867132446451647731558370479681913910353650877468269653397468581126468781844687609003643142021507109270961581219404897828676841612297281206909145156807686996803949809020711965604109827927694261848881375684631790928636515666331210323860014424638904347561475179894711944815597055896513638343607802591225522024336833488803862393439514255993159951352939892694127807930222010955327648460571563717178735724808786961210579664743147709812257703575153663216360662816378859244564507757675142909069212590705170071365781410789883070193564377813226779833141185574687926082910525626405252040627991778695479495074843279817964765880056475205297118068200215632489249951387524756663501170854523000172668900783694862310740539223983322249313955826912598229116869251799882314363179412360981690365664032806107029838270152246537525859441932317087882050765434297151852317289558027712104920252372005870321695873670447010941789483411048965854758275483923398908696443627189941239158349616481198886107551419365352087763218584405220416281078040711800887322937785823707266237203434289939950324861016803192311340649030378308563617639807699872370865492936287303267582945642358055392557983806329301313265523638800662826114186351823564482695838460592866190306243156803639635333027503547922305805984657225085467176484818990002758693707006094390490116680304174256438759866556008653560119148339530182259495350760867509812420628866148080500644706932802942580315614434107925604958462170047290584874874169699498938522394432286749556125839301931735326154671409635467500705783914532694401904716008960744893681196902954164443609355223211589529782286835241269298489334967915011875542772732305177243757429963453375684149267412838663691893413086534635920992276394062153210107729573556957111705562265451207529767014447581204153329351396959415822672582143698686894997095665364901535184152801574354716918842933390090888778548544163884790908629305978667307473182716613713802738847235739833783428061893926124774705194800311127952773366967800276875330076552734141319111514055335198577003795583288935408115059208097306550570146629894186703659597430202861185048211826797683512546127163460608177793292247344495812741234497024845541678743956583694256473060189274210362928372904198259975325541671305761008630792043825570394653518756346289618919505420739344243696815936311988727209283308435811181464288603812872763298577641145736734274648194050623475179962632157472353833543361744856413322715410133211577895755414586522343635060867111973740471702314972698464564513413271906016529077214893412486618420148621589470083436914187655251066235412720708907480591619068171074142304255488612292160637360292882795259007603403650452334537892476639961848513888565488154648784240758979287924399594661181237921140749038328394659955789068198622944442160262507161247068467907701458959503120724989895035854113848994468522155266395020848916976165385020980773964343355103601402304545831058292271356792834658148661726606030666512050413911024967108124857202053568199931051225769400561336232389696119867865551061246200233358205476309543322004576927502504955435184954906669735096093128340214941138558189703404539215123550286467905308196929426768369705143419885415761441268967794832147367079473942680751237813333551220678962765971560229492847155985678099030991389064144564950156909156471432244986248090430781856183556547445085841408839999749986692245536241624256476105071701587592826000195572801620443498585820791528481216236583214359723670370191699764679566288901059748046018216788421617901162167844329509756883566833159204805236833920816501260948645112282185658699038695205907444489122017639659521318212452383504049626872522757472674132736548588642406740365098249627421092128670453421523835938838947716504650156850361384447554892525547051055382945051028868070365312204073563032519697116306093058882749574896081692192292285284887497690492292065148977963129997198973166056885360218290179604328608893974809450146034005009762456437896833987902820732049518200016226519807945479482549465501184850631392624384128090707418291636871764474377612258668043811341806144820186107464621019044194795386540836417536067988947024506815186967878232618406292282371471576073862076433966863869466209132558857302311847446437470090372717503468492585024276612940571256118747752143337217011155730511508800424574447583008470231023008869637596320517562295679847625894628071191888665345762588901545032907154565068746922046516892766228356014877845743681770473203706240663383306664047676918166490031678214190448855255788979643326141800325969969307869591722649542980029352512638852270096724826837021569724443791078030822435161226734303421665049309633133142951840279881999890605853313648496447371424312358270729145601980019718218370540312715141077154628635874374446517669440979761980540203148385394926560364857225118690360028370798408656949010238476153864510391275090182978972193149106191566414234975003945791211626178241036358174380189031850585434331379593243642690815060518367672998241718544761947160689667505638257403649666634713213229161496935898542177885102933125122451898670159589724076514213671415400222981356618037674963588532911938940019534159675313295659408823664237772943631438020167531096197547647724281864150880092477825502429633453487479700357666669063909854143779500015102951283101404939617600232325987582645249913141741620028412526874968842469735218331626018174172455974307611934688421098744005052949556836991690226939318747429630691891583495242580859914324640923746571479193610853013099195995435069215167081494663836744286785401894819713031206798724723657781324562421988092951101529273124303835053179798573825711467941537168124354278840800560627466280846533730165942697697765566531800406137418089422355416477936127477301381406611262553834437035836365090566083152490843187039024186825776333970955595651738912942824964948350796161649570937990212048118226167518802505947282370409047766385767694137944335652541519452484013862400548664301745553071049276092877479905834083141967786214158479052620110868210309894979466521033197371994154869966416031215031285954584431632659880350966906215518691692375686343036683702849190918166700776093914256085183136366392188865493909396895468957176809436891095009237621629860713647001740827919413040029123150704005564993123703628035151472168032038705337813328042801309024506918710575118754929573255670070772281443292765378443133222397370275841231345086696786534106020306734677006970939799034683891426165443703843645107236244666872976377730803785100350521375506733374889118142099752517303328811404729942931710847230990864727237569819798032083256023890530426390420675478594667884412548476394065364048293196519616945067251298294486530773602248713074687599126800318162519047982573430722785440600518690750746590346997962041613420929264505827057046031431086702051824303363683729278017923433821262329695282835848954007681308523338836384943609065271850027070867872129550728051744735872394306042460543301453401063658713524775387408401356652804050073447101340884273295970649785723096815420036542812824140475870047289937867037810741690326811819642593685472986095267376820501800589206077052468966838540918186930411508577241207624916102898507026156514553022908556316718409567428886563154950483716665765454866627134987560278014368928433777540677860503963537860349415631623907789853157971511745134430430457012143267492795555245927099282986543487335389405869084227724257207179046696815808124295203920997356280523141875918406589715725603934084726050382118194034237832979560499837905927641565483800414706230415717805767344117953755522732516439096670983444818005931747682660860191307247046444818519374173439428106770054120630450040629065647675733783765033515120564385018404385907386446164096802365943318930557320742334056301610298880780603176498280842079034955682643299702486190083117041562771364631333651386550480936928024227846768932589284190792957597209107564933317247637222548649148984382358898320586901345871985621210241252124549313822668049398201195636774903934901824133128539564431594518167417572507767544583831797166587921800240696271288310221616011603530391587578847296635819764728557535281555122328011591610529697035955296409870024102717145868509840366900007201379266270605184672468004796831412797522991357206624047331910327913133484414672738211020939037203017788771229987247925570511334209914647125489492745791739687907542439379535883344893271430566617024454932272748301920306541807799485537950407917155823629217559772200514501253526635008392546111575394885459036976970675700896705685247200337616221940263468224448612560627193195603782922006907125781615813074247052659809013461099764732379830691763911155115043536818008038514272867984698209033263580854816317883291782613194501833406205991589493166985349873544567954924267829208164231752478022649640176318956645833136993615123129289447152794891492537421009231725532723289722460966621728784218385795021345632906803895643628689591469411076796184815264819292114527581518596246970701592245408419548294382394600320613737825416828815333062704980876866112803379380273200822572521541949767844661691852980339273245244757814969810355792047961580715720040305461546683023455993923487122306960196656214254044519236239724693422185521720832462573393227230724927360928330393133760817682309564130412383062267822090989663398952600169539406782578273999672389025225357567572722746766990669566174250840227196260929282253386910362384931222143662112733242220379084323946800842116799398550255011030614611562962260189889808630477316412715212491083044862761539114966657923897243808896068004376283344696898966109337048895778580549669501973627015673045247724372110607498873923873181369823145777981164927683938448350365760006174180529223421442915579855997036188034452095612853322579745931931746842880012060246272670946241425945744171402220116510640974035485498546699002064010126471014954179200395919240702886586362529786327146010260350018617395428497008158577287648813565624861795758501427617096470975046284143181853266557323504854837613695556379069342102085667196225615783969422168648318249601167448688043516187655279975712636420791210470256568994492530044238201564298236958495265908111128938372050187766046519475391515351161549195563961408223272637912796672476010043490346534559758330536000858984352713026182790051246176587174194096319377200199679303604421303297567970371273339007348517794310912715059215474011259877457513849172856348076947197504429288440156594881709223474960078331873936050664203287835972906160670856226225265093016388953860797687330434113326853027769120155761914069772713716585864484908091225305270351361522321265935718533042602199615631806593131614620807785333434420036355548434272949206092002741269066854133143319149972442942463908703186259305851866039739098519403113837222697076373548189130511999835886282439768017361843061717269118332518307524230687339582266720030256892784608474851744998633714035897963298020327052867283197224682886753781511781106463056860386370486760235354462539022428644345624819685489025621331072902197627984652099077240856573681303103819353559990859253072798459395682307080098121179000112132240785087890301312244325506381138442296629615819158326342922163978871611077480195873983174894440894624437192679348517058615011603406037218202041113469040974372899648703059765492818641729120832133369714762774167898847608654077917124605369493611493329238283270231611812087967138896125701893002882906226917526640417371596752474665912224070426333683337501040480959691635860763400515832085294931948640950457157798435087776343346177941151198890366295497444639979839091583947610862961708761101686913192917365344757667096071957212390791581178580532178107860202501025500259543483135253644827554722615369445470006176728612300286476434108222374578895709462962809517840732695948131392722364486310108161996365580798126206738014352333159681126498681606722015641729064014926951404150327037879986845374809072175620710424167833105126178987826129711942572999173832439405321839774940236340695684024704711173839648801988081417535939380496416280760470555892076533243409892082591428707554714476586513675612024168061284461923283628589536816790949987897377054031850140986740549486407671191405950478405854053887916989004736720942714884320467829492845742502965683759324893580074589327135075868724566610208736837960567202494403158479555235457697002893029625551415098441715241130403096435965587008685298275068128593593691439769878608057002172634521549837979302678661153592603713506249413411749512559434092322296358562362874115627412822653803289273935502095385378878528349074260598102941863304594197257898648019834628575407564237186330675799669235486865268888241310873464422565203851251554776042957221859415278892693633160931314486795098239034623555518290733208651729737409193687688573645456049760839337032020417703466773057166367497478617007817014162655532462610760313395453924010771818182206548985259353892098784213357752305057501703641721655109158587924743813219721746512552620949006754275505105416942234962611837134863211982739931915143985415619974883680969410561563610530047971441020520343732499737815741019659703202709543065908398141290011949716273026042747339336109622393084869844090143149311957474436074745570685911140285130116809131247264231319512654384517802342197285090437517567422618932235608785178981627790665475158078542718177166680237116163424042573446719763061250770350267958596318706518105908707981725086748495086768807187349958885361266963711330612008441252903527892211760052551062482615847486081275923956125571659910102149311280189073197469488537197580853772951993766933908966012785185253713472977369486276803715153817252772060920469314968358603783860264287301662504796246735113135227701737647246942214344333463617370717888295718430782088308643396240812343880650126538211331090704443952587895960471208133715455245163286056953279534104085978019000423209002061417571879107324831700632174784458247697559575240199895943296246107988661221843775825162310032951327548090008963602410449026473727710677746667180425435768209387498564488450603167423382178306002944064556923862143321731277684462304342575473462897955037403721092735572065177799105349225549385560326776426762970601406824685551287819739950022501429321176111090496797342102322419310898018293160792216061694899333804612668822268337940743034016256839688082266031493122116544234806153981245009438011747046328790126520009660626166096497541909845275948879779338850947313523227857993066749131870054957981219137713967145546492790124323956942183422316481132316075228283891721035988022451306620727524328589880008896419906870086533723704019952536453290119098838413700455303484093157400611884257223628191544889844800775247065154977615211572744484968190002399533576721845463887258522074078160319359476354084051874381539147435566958104706650704136692893483247427200508636717619704422744011186657811721404219157758042868747905156169141629799295442852404408491324964471993065627523458501749353712379167772060862519884196434367336355971075685991730007263330713791341085548952882310736364742090015468901405520241583739618343084246783141984965038697439357390384762007155018937149068210237425073700016949312121842006999972671440856290376811392604849275205684330013264777901096788709991885617164083325102102623133272898929406248256046933858188689134115506406629056649798667469655322192818226775561953532602369696362197788276175350953340037863454281503256442302768539381507487468052197141208161310639753521173896740495979321004024332124245721580837392974391082764488698773342771555398584941525437686108765960384008389073492319025497848486371835022517225725950270107222502825564999706389184270467121888201430416643481967812598380987639723984709995022168768485906746417685164502277410589755182714603601320213796401369599253681060078071371798526180616786316335223462382836027281508589325807934309832522703473647252064548891054386057443640499443241874005578745811753671290428684651691467613257937834845892783162127976544463384291787616542485445439783588238134740104486332573346390269080734572794676628618226345362567129996712778676860515886331789699989374669434067352615552028741556350776373124940995034761552922419314240656401186302633120162039467411394417439191416660163099549500664517634337402135666541971616514505823072934847092460170541871978555672131050771644152050765607305006705261662044007204332995349989610438476531003337741953294174878652143558413124152249593994217029235328145826730733358997062250926962377132718432098967615928133175788618645723303444957172678081781923047849817564514810721909982191907591737699483255456092890666241564371142871784459965907470229926643812395543917970283491733870392569529611111457778142090014398654317777661565676870298754535030709580835300631358851060982108455983057109941718017021063994627094080737466910809865831406884665062302291526985061510635705400163984391961430312105557339628020219875675150579104040125084333262032483368583667549280129445786193329657004591572430196341054379181805629565680622854849154827969449207333969610388635841882798910355034221475798414190203966313124853208078760173750316338027287560437224771850728923126072093913909969623278997776387379145859193941206694133333219226940005159049720843420582140658699579808665590552837883234294917935170402562644027527812187986858388328600019706521975766370773517519723855147470185357199151002321042015569366555742631736404952732819520692810147823036227072750917036076986222330291578832099565119860230923297577511097130267387000294685177128626544195589981358903278854946442624122868710746179941076484114601816937358363999815341714182866892703196685606919381945945868349080062200163288808736579948446910849447400746940731755379171263606740957096931357105329371520038257013742902903665222525085532487107245937977244767306389834809554279224301226839963169278562060144460921720622935032829962302990905559723694985452106612688913386625649075413961110144447123857301881037278392802151284051875301628510559039721967389135009774391851107551056376077986210314916306411700416183003758752282544585070191055901372479479291653528096301602132700882656665595042549888082996246714160795386439954536347431229103865828686039579322291160618853608783517992612731543100720724239954122578724242302775532167269803661556108146182680214113208705102003547450300488723739794006728056132172479273483040325581379252070148914570080886435628078917161762308994827943648577251683873001854867232113740421476038460926854276317104926194869065181030363461293474676987221870519721767407845842987985721347704689305558431780662064216966041090106006773729020354038219693386386150392114871352120962010291042650843415387308589850010702872060415134820764670940850160299129798897420353457748628831324074678389190729154030313462326100391524494480573961349780837043072959430024083050300046212754004154431283101129484214870291504952628139978688241442838772914370865264572090428002404859712947897251248358598947105668050560864087023370308120217008596450335839537391916964107913253244248830064538881646577337130872513067235998051979412105263165570157552052649462659622562612416671813359868857059035895407187733205774819710112206391974510022414512268962336039306547598480831988274476163465301664156890604775341787574177150344201147534933814834409427948906684632491390304343117024744305511940535811435243430151073059420864766732599849262567121957244776946009993850814735029143614007358072505474812523134154045384929149217324473983719785154671233808487861455475848466885483394210705382457552459294268604258091478831955060469158916025383239033020994263623875241728218102245503393056717524168259598988286285650228050054766408114717369922926867250227785709729003898529150828527182167569153816141032669683694385219497727748684704528803799119721100381535188067283343279597661932517938801230042753972036905558840329258677736852003050863529359355468034263713656245132501488496955146498195052253512861326340929571559817904568395190475959931375034634465657804469131771056458880365792664456015941501978990342412081882420066911424694473555580188363901090051609172933307640181759233273189498963208802899806319609050702713394712017692330235795050480224079618593246012151548444920212967107354147801159104416165318782041561413148131553524202234868511486880574741518393117358129161607841735586613164051578108320146306608279766152422528080977629292744122791823967793324767545263861459055824922569114233563689453681601270580306950551340982370046909842371511809492037733872598847485433691178018162384721260911070630170438524772470253188513438619781127719871544622539143878814313980369662404260471446418349982801023398237197691304055671252065162908188304273130104034676825332031490946860806937664722390044204742308275810844270062096542079642232309481028494522898424370620575947665064060730490058097856025366431453222840313692178143787424885700751438318346615950364099469491109063770031462419444765131701583256229356953689776671961994123379250141685621220380922922511933403679916764390469023332339740878512838477424316733052430914475802814737578986794704901507986479561792616836721152256336929519392063713248248319155707349073307785272243265172489876146683764063257729308829755697489887969686767536168909434735680264294863125209848283857800608176942684962337107376495300278424373876447723543135344827863139033609369077854480121753703664995723286881678156310696604085327982408873925324071375962940112942093251569824964187086369075462299228764232489013087144650471893261219672293115324203386267653345642550498344938010180102336829131173908798858042702738789661359423760010973938778568392560106166258727249221092035220754593391206419096512430923497780467267102545111009550552081218813437023835883586129835807530277223535576385288374735504018230166799680804739543577073606279153723510747189274930245787887526460917038157760887859119013925512027809149926236398412435778809193074791385283096707367514158437650046643665828435712519913612403521932304755538827208880128474305000522580305333313540144613597964660548255073759995311213981241013675203721529616623282125742022315910712188693750993837758536149870769147151795230421148070094165683260638277119154624194738864885834581021438679851885182080694620776532207829245655023894448000257488358805593323659767909227193695651708030139143284955187948851216570389163274526587920709789949260559266395336783914353691215146610181561152009707551367877704027231022295962740875001367495293195609560524151954980628517056269345764659305510960582073456146955326715541397364598221022193213989470896450778534517595693477753119380497375085147997291939071202685164464956486274348603793144843623101867466569795175307727068000328863518930607806284133679844257331168069100536823638779841778337925705712512602518352655052363481488604890335560614516460664182607124661284328176051591336299756988065114446490561091218319423756584322441136369811711759134091515761507111603970554393700385883009092503009851535538969946250544328809717298571461333290751724873404865552352187124749051886975721303360381123693310310853508691786458731526759845342643276843497797441264130358306755499537126153638990105154583619789616628315094638414671959024379131964515023474575630260631089525947938928619559798314296571626194207050114910357296593335268003033238442831628138359250877828681279215483161972164879358108911683095052696399465327796395222300806564354558802516155130416316131799631597521574559262301165758227583108085727835455182359707717968240331807290600307221126829720880563927300976284904826750560705797615994991332128286905836369483922547761703507055228609089041344770255504906644674486698537745646471564208681101640391889696770661410063757559818930646437886782538746880036265097056304589679721252624072657228056353869651432009978550530822150988621562607935213032621963641998101436701281533825640589276497497245639738131223439633399564180794016546942637040995764135615066677020853911873046604689418723582576582455055462515113990919264006007179418052904603532004846725047926075128753797123278891758510490187390915259221244034211362650314608626748424334103967520480026704777331158289790006731745005838339753596601102118985147218338086817534268671947452141259644773301731069501379941581860990873468502093538721490612130481209789800022216968543404176470847945299729205411336827025091273692577818255806542611797314631316800571382233571561309728442786913733453029302126839357590545503620336150797757132450810242278069611969242863700245887846853170991543398957590752042731426099099819099020058010381518804473241442776640579898539984729731373520517651178575530217095023347985542295739033350706580500871607147018057975042321504233953381941524103629163118484224934308536405980200433866978386085668568752890347820290944135116947914507645386726923017429740752910188283923812652549340779917040344009267507843365974324201031054857686180237305102227372778604781044140594668474291811755851276172697367950568051360749386729182555408804101945119869738454206827633793351410823450846647745247800253282612008811310913338883832485403539472525581937329708839363129383488635873649146567994172797209822770734652151413719017766487183906735583893202871536892030039252777560830351187742564262554961138504924985655643674667835463298632041122475701945073862197994117055688454543410209215956697822086226869684410520928420125550888537886084587691848241188163211809686605303899089787965380892449191789239013008511202077435524559487316369773288771356450628058395581858160622920423880606456475070354132731651494933385606254272455571139578269827128758480925851995134299655049520109020645612862501087673720874588262037215876191974246722711350207226020102380382552182330428239654604809068203907632274447164550180020310386560699964796495515783464530451966427845454802661799585304595062258236408432620368107122413457282076882859702798022171002138409219400232393203165694041395361048645031371060216032347645639201733743049319476027005786232698849893658090734679208353728548738346724592276574585118779707993808389353905869288704349364690030318362429715196788540785379191500726868048858457629495152910449459988949614205198511830328729613692504739512339619316176991658212468565755822611199218363999647233652794884077249076801458249720747610084295123266609718645966717947420135280132364330340366836050451273287958881503960100043993349456310673830987328470852424565769570851232900615166694560739969439802645314722168291787830822531979536463156602300533744151175583131333885880454416214089281486701473276289846765911353422468053653956175874576055282570384576683757932731090928146558032218425718665138740704999489871247024482726660609151812263304884396518151652045774545128784227448674676780248363925613773916737437946351024820989870411326465734724744928144304200384380810962822914576542974204348281313666948239923099970001781229805342793706291787305498665631886487845602248831526083407252571168352927092404998107010587760377856770365646391680440917162344835569952367230927871278744119559591884892659338051783385159611099821319757698518194883568636222488901662765928559048380100597159607733476114694826602070632466264265374972360655533581854312125510071334448902683739475687602370831462778011312256132093962369589537447443707618863991674081703263709896737253969598665439841810353322976274837921889690345294364938854908397378125729790033536288287100785005352598401649828867304162305468793461425264339451974563960773031646249963562811745329680693629829245860650038141614011643154712361024209255444359338182629307109337154867611937025113223995377829326568808248121560854497079777912014173584292495162454120578057206952754988109654017619651297501156433709472991143830171691563473700274827319416641975885684609486556530198370665415355599819019227275395138854730060647341914209997389037128641884794161348877667305612593789745091936985367312304410624562958672516852466653031777066511652088003142397513149956964999712899494799312859252425928897677307031464488026779553993445116226062121913898156112148303265969381213388094259280763059608205429518063524766533721001589021332326084829623021442962145459735163778287405953450680284913439204686557968520532756867454154311614730428878805029401734915675217429775192470230099569640921225335462294586369889087495012893842334344038885240813381806889766250471105183233671518838656820255066918433191598058832731506996239958406533728039519260468665135460199495906527581306542755737326234767263638027280447815715159956181355874387880259890103634050495530265777748419171827125976322671703904255501934083063696855219725847660329020552058119549680133679883363779210909561503740264423065818951139382782883858291957275595243182610257204432929471635693189293598157233151314628450434461496377259211958431396627029028962218366120222719079042516256827450613636137847110950407250042902490072471604530191452485742889132413028542161517826099141266107990883590118362036126099408383637279230730544885874945422742753201531824114330114210645180971276816290541744217023913019736302889239084866203710231264103210082959017067450959143329726536637585361233459928312438788622654536005995481465029349926696073413941350175859293403190210858930757844887618415252119149673501910855996702553372188592318465097476276618684843221694387920973973204552367856537687181811285851994801375935025462634414052488397171323369805720199938568987612301524465842149820717758062374502561893191306638430096904490311019594400933529731520614352862326132427049540246910040449751583935003711251365803574522476346602951134768284707462518395957817874208607366866297339713308108776045623171681834632076495476932443175020453234448024326685509627217864900529243296020972885323722577006875270471085056008851887946190726105455377650556311729720906599536130458487261940008779710139496808813562531494684101628797801405917789530601418240030696442364042329720209138922928190371946182011132671272825599688871667036827263548174692366919062433442862677270493083809535822497266096074050965367349936205217642942337705893245374821097024589301390103339033738862190752923406258966171422496394324223033011077057982621532558932596448545995297739804395008530464494112831089415618405863570793207219035441210462450841911770238362181172393227364701293969388241269502209855998128376125321513469888503686519571879987607120099380146788260688526277138405643799273653153803351001113140370313404557765861884354104176685713885854245251422489068812095512237315833356535839379276298100379054899205192571149127163831914747088477247756146092306757782110158991267448723410012273279065699426472099816833568445904935422977036177669404712558912969764264948030871359790458696413253563438532436667271202610556310530807947624838234949953129470332652593123340414904228699630189594911241161813441688258036193209380594144075039693511215538601047191201108203677441783526069875035354674448493298529484585514355003181350160369357143917675744275437606721566050085192207352355794309803382996776078584382115747293477587111875506958491358232227221992258313707001696061305786878983557948474006240458314819990658990690155299897083198732342543430708477239009926431249192262675714080047091202921579150753764807747606000042678747510063736589175242010806386816362054411358123836908756714680281519505321208656765595359076836054782574976048049119667660800135701013553333623832804822466682276234301698396941157422605591195687323022009089672373638629760021926396648740836004033945573748704804244502701870299660382350615429759152914425340288019853706840947771265682751952783694400365092708712730205449236788666276354247846885245054539982590154137181147086911290195796694632419212938553545122370934934371278061589726848688828906123656877134551944828942376570455405573199949056972068705626893611755314943979098986792727890472271057654720577409699628894591420766255702365579962388952517889751839467594482944772462741426140214107527253775749524287695372380124721268313559328485419778774246181200812332678154987661691709579091594167456190031829462189258382444839746392601624771476209675627467690510624148996513222257007152962347098213081392374065785255649867784707525148776721005118929817218981163988601493191677374936062400647902953006500309808376619690879060437279860530890992680144243186076649526439886218585850859765898182780170400093109612520433966204745127008623311499800758083010988497614533411328021991612370188744161847641283691090430086705157444993027955543978773299874658598389531988026534924208001001543970504516120768485249497794576738450141480243404488042090754808582874752107734304223163250166880348419605170376784888445517700053430518361711162016243517107762611404777909600977896392111550910102641679154760307566142152967719526793775328574100879050298261263949969224256145680163199527269295702284064449742156315131586510428163501575139847863812864846123489177766351820528212978805339547967666525575171765044716641194990034772440999526615891351842953610743540698741860008198377091387716953544449230274390455750244028147614294472167646829085395283157741942742840252228591601134954962694525676581271596903781514097071205341706620355865441312203308962903586608357678949632848250958901809850290958365492438640350148685640969019807956264749667349381257287129919236099276405764089560145358470592059594443892340695495447459005067044579168965569323171038830074751284524452593363972620372048163044854252259921057698729184941240630611049801480003665925615342644230318726132495459148631980791978217578175327192684857201053320863271793402250742833606197073995762866861021235128023365630838551196454052097925238759343556658429708777880855031689023165797410577822584093601909797407461287808400484311030191661216598299949420650439693377298575224472195935073936605755037936041189637478490553972476576187976929314338271529206136264683282481549055562458026096924169209086510147984331848556709806852874380983242746691007662375886940238123432240975741968668950003856512993550953408919541144208641234368862404202857307868937450910705598495578074502939766420866575985743761716128568008694752082896666048070836888893637728042232876759078294746832747455628466897857084419112270107858121935957427687324672968795600450250141849158027426886483475870717994520046860475013468174264843771149949647938777301243721149245972084808064403690363161720387244075504058328690290289424330550436817428268877855183861503340781222115759858642742982559097368448689928694987182650471970649364671042022941085947995180564334722304684930882242031543010763741630722144877463802589919926879486638415003271269147882524303849565919787369053352767685084615562246447413677469519491240230147098152737100952526508823808255815820823592133285645512769285491047572429633158747605118365940380762093282466231977058644983624589230412931817898787962747044244916152259597018617735279430333253838909870100613439461983881200421525688059039853096374625309422213529037277860614448151992245158242429199674006162906913996587629650641326716440180583050974360625140202024568885078513341602139080836967645138164227443217391993099308832167123754109186056141101459625543565799530896638112412495525353914684758853708241513892200567665339080657609948760537596685315048107646217779732570477542436174807553865789900627446039058746567685782424773312432936593212841443454717993193314685299857289848557065310966839480986394999553904932555304171822775161900259704422738128889199093889320636646035999005983879426307591538133207451287454915647893904691443111568439879845645569001724020894548311503136244399247935034952772978232935312961011146935090029836108870717521293093967087585882231088208423598920315422958715796738863686920825841325080853668460839272415569081624360534472945588017097182180260549145790297439601322462709756436361724186246652130775682688608259582074816492348711338415834705245876156610323310052708826257661591869396047850584316440935758701148186732815560721189266742592621731819659804068096105861712902919654434028323136623918312291413641933288249776705489301335192208373788860060176135376462894983026109571065113891141553070119334838638836755231456529077944029792997238042291486746157791670604690065501427684520622307347645618575558562724057141162491293287216364538690136778490271808083377577138744603622648731013739432174874637982893127839773666906796695495267896713279538077436299048943030169267206627950382760849831093628921128884083893556218511392147545846515064685233343521945946818695436711656097189698609496567004574502668333832779612250188014356963049465952304620506501979953578695665941241857043369742149385493208685232745426246310337668497031304565813307322362297280128808509158800509821597745846150855533370431675609352764182817956602224641959519826168740827956764838560816663846956282879181750698326866870274890383043529441472647246450903861538531655107112930654515466381524885182595445511162921646787805773656563519270394456808049603905271924541588990539340781500074178479551392906778289211863773508894644112722095659024690528685829939026727228645205461948183512697053300131338556453756376344801380417363117086136296339039948133313071666094947197873281891133561887434777406255658011550361458107047081165308339365037969638691220025585553904126272318192573130440630838075826630540686510159195644119838159596669237717366990018535001641575051414015313849038800030297016673150561312212164451144529035187802973650285166109336789716192036628592026263914058971081884850376636463492417635778609259878650743369604176946796439443526012981819447599616227448330750545757637271350807945509988290776505805774888952529804177976629660084336228949802389553049148238485854141535971351995146691445096450793227786203921771347080938153612523705760604197322920676078396794218403258650866010061876504134361170931286821807739316672473922965927885551942635912840439940453599117017086163603074353431955726597845629185329028100156164873564176397625683606466458137966620857130747087912483353297528598097069603912779037415644480574723605296538500879640433434418426824143609483793049391243948511168234063722237558932755727708806972199194329232676856309704577283898455966334624099769147860264502825625265479600897427669423163795632986299482520010682217071546697315775630919027480750700997701760476739071946675145565713300608738711601950217925967515559835477095569157566544421840723428453690395705531609051094293037160363588754109154294842485395420829165179799178604913313722479353456450378811459666053405357424580369312536912454394851185843257996351270303725893566650823805297669467795331009970646964064473779507071555920801346678900421436969064044815315348713742527740233167122015842896208809536327993970907209713663484661748093271649057128341068073648730907309760221763819135468785473948691649391226418163124897904356281342331953290930423271239174044340732275478167998310518379113588423912799281717368445131481222747451813631910030406882228049267663882009480373932163627641015636766842638815663546149115361488084140915413501706719518877017186299679668717923793823206132336536317664454525206734605151802591255838539425671313598715241970159050500379894422510418191139838811023014231348210506300572152670336874957584461081779191996081169208599377996322526001646338744195582097520786539664181576263450495279899292925252957321970966758030927423144575756148371634737377472608077465725254306673600577576608065429399742638285166695472463065535011301731534281765146418595461335245192570318021037062743764220974304083380389862382458423710002307389244405664483618016106605715243948622129341513815972329884544785602125517434996167114547871444967576833168010946856580359455883612203733087153376760888115570834274571888091468569336176102200255739976538571470356524003387612668831835010246799537228597487479714785113091082943444620829917791466318174652831072860655576999766990601968782758136063935308507898518930031731208099310279290991465624086861758604289804524987462898834413483711022227369811754663033691845026397683197233450462672645108539821276062883712043967291077141268868264412929992493669136197924299182935876503047157836617701874010707745256797924258457040010408785466682304112739981526909506660652501817735088904424983375513873367043032164962301344263132769190215057147526820712412138172000945778837570284714406708672324714212707023029914309468041038292156403399157650717086221890901014600118561697986141605234092132912083165787331559756794424790641347442485670729666693240652965515479638327341017980992940346541850518920071846904689122034466179543446803968090915105532564868982000828893173973041300140176255288150499444540133568458261319306755321154184303686970934927845582584197205128108265699462893426015921340295901715002313630256913610843569902347996297122309045132774199500284937356871927751577378744585589078115414920003999714266443234315352885991481751694962316367754734738003301765482980871468154089827329334828688336768147824006155418609092552089623765813711355596684629942500490930550676556013890540710161036503060687816632685920634949017069615956891246359125074689864566852504070256190113286445033454328121864742014127314940223942315973228030301625980440521839944387541977865943957801817083475085539552251485176448929453704567814915203791572414152643895084062577140316210270143765626831610703204743858656505929884232408214240488262055481261763551385163099221604305526580148698483170197006073371013259542711716446478174630943837478238893156976618354523203801645410010765438277505616815481090359182790244900813897176546843093383501358765763747323158595382830544653185407899571125551187487089052727170122974075475709983257882472903503644957401789248609126696842978537822355356528193765147646352063759167183981104571243907161910479901109620105518060500040613107902632027060623326494677994287958681692581830741472578078838953908907137637901107359604119281279225014366901119197053178376580518434277209179858074402263009605501943750369552037910409244129697990416546498674623862872876673453347596279755362389755338675169966167319885715498889402819701219828154583288897775884377766507659239195421535768677304680436914916318961552390580944659661065053396988220183771196435586774470566088047827100297677820162636522088432258347096385885478567672570730886003315933419822597670671944395324831414340160355273591904273032353600675093943937658100760240978718053509024739055308771693310752821199904608902148877413787748645723283976155223323806947894012468924900368464463669777087010351946553029971410916478114912223219594955023550842238744564340782774035067052097744229078853934240575606216041710165718795287156258151320385196216661292849796225064079202515683814723576574926074020614489995544702447130968854826334879675385998296202552989940593185835427108040618095513816635272160281533435355468518390597872593535650073654878672610858445651530699293425375676094139191525817736464240544660703407595254913255751178374566712448762986360175223894439824562839883985534739380040104990943793049862020819766884410380153094191323110856462049857835776035865534916698646464708592271088894837556102452669971795559412382990221239349715772215809382884082379850256320092709725917941498064121212900788990881514950559462891067400824028616783926409101935185294158716780505207679207048427993936254553845609088370498010659934714775176102129793872936493279022992850232363097153427046302758135628710968234835906161518191973448011981057393339099536664868997325415281948473177062492233661115611738790343770645489704985203323260331924665124787618969838263250539583649960913838679211558254509818254303317553400921872689028444850841336803770220202443438958104068485196413304034418772656177639103667451703470766255600850942032881547456453862587295140834539740432243526489713822729811212733359965152874037522334985004717589118742725136922233547273336910188624061853044467139653631262215169995320017108687068366001065404106425404883874320722489395324756528329762674618379216868039400781617362501662578428254639820646214688655424054125520839824758928049951808912252636750711690368708941216395852652279559094589460962680511210555910358096144563176818402981234428100587953776165628030330635251361936214575132192532879141623293187849830740960525532653666212965906092362673925614963454391399946363476480483756894306494119958820121295388654176704160874467993238854007856031173291983173022509303117185639537741936443370166522499161507802846024256981414149443004272028862616935258501041570338018809048457286709166284258096149510175221068159262751581790159588225244548129957819766882968418449565834285798393070707151308739478846900751380112641729514192016489142239010975183200847805669566028141434137821179634237478221982352821274357365068835075053151095744805367041504147066561939495562762993000866125903446147522513056885355172606215999531959635496732199613671803588859910294490134980026844666967998486369807937826113387811208734586557102644982437869627124913298402944093186095660754217122988336332785708915776566551170467068432029987228123778443597227716359088477017201497267236009842795548771695073163253313071064267717181163038972554156650433697838857543233829646863851745084922578415549339452709737941127662984537254846449162249156565114640511370522526305313324329789363390275165723474829867464179374581843993477420406255124614255352570983473773692283561787195905537478692229473464701063082555056506485540874488218254520731203017329328232755889660274697411650174176937155075469478093882697048465895112127213291530330621283769705219942534082695609707853369574779408236950374574157262450161007105756396483396004606123186411854184474075003218549633174539274170196452374939315648865959332559126312059151285024102390120652507118298370639697170051647996169309160435114812921840239370095700601233010465301360695759095912501712916095830765450027607844335137284474422235392885234933534541268530602450416767877041751909964187507894735680857497681569128963050305159042126158376489069525068580065552183672872779741734015061105917578908936131205645329964215905095299452022760582613075290418059278053198934273127518854217918487032435879572982857508873038807343636760788734841756924834115047579990855669350279240508486517881509646287082167086287163505030811507381683395455110131510923339890014058537450355298414745483168432350943708911800367732650260177560223636215307398308677704420436329011032895089340453693258921163957866667313314143244687989406345250871883417569477742092898215093846556234460660360738582392596655580591447939081871776091851961181694618669600214796069839858246301820045887522545983818896541528648952722134600979160127017720075260764222232698229335012109999955537889994886141886910596287368200189805497906469212371443239439729808208153247117431594689043992087164549420244480221645984551430456754969453708552404025650336035168801885288004133622113597186845765095419796595951175588691415534530243720282122722405570152844780189603303691288925734205665271989112911993435276556811528221438386089573924499061260621472259538198201760518119985990091664055459163795092075098503484585348199518162178495624630166389436513317749411443941851276632792610835896858346030603821878243590951858586679337217725122800800924170099568404828866575377593938823035216878476985836113976503565701200740003450708401106721551823942848564253202561724466467510214276542131831845351805099304666910375576164281964516058030742630141145871174897461382073337292985046276233914998058047718522214223813671041562790080553813907704102416997986447866280055483273632557469406387164960039585521038750373970577652798901728694438062689019758113325011288224665944893374606702634626421160626884470748119346964229212204941211328553416879805149272605015345405677314266711347232394203250840840688381526563420789465812867741499822652381940922275111270053936382306701861274483455967577254490456537762092264584737560448131702273357389251087352378996164134321471550200138438702689830496176647293767954036124466329846949731925900711490023978010037626740810489910246291634311697148629302257280419346007001699915799272909864032162252544961213113682021176616855686354940713117305266399648469366119445933201107049358099942483596620075306482671919350727854130762050691874642716111299453280390333064988642673444827055477649215994619541260986164141075245715047653206107681172241969653160331902180645865032397143008600063993930713904945445203989340665639014767918538339693413794104312995447057936497178523017968957246339563984025967758186924859540135574506947334573459278363901570334184720281547562528833440479070819286722315143112869149234217357745511343979917169061645522513675272771755950516632393675388180389844873557074625269716594304552820328536232639676495179381082621710692566817480518985559319002086377408393854521975913344744259644492913266507563984053768199049646561790496080085852293327185100943285131711045398903010471041797830840796413562683192286574758404805940577249706901824641940255984467182985695827031885562145690722462003569299056471615875415937502025940527673757110378384971740216251735756702616129758467431624374635850492298048653489948934632890500844947045368722400894469759618790266874082271818240123880356209478855152757219558282505379157915308894598553342503258876031867321568815773294255495505952422639816363379398038017152191302072959044999366624739990771231519727383520663662761277572283563225077974600848190322827153733852698176092773479536934402359681220822276317368014369017798977055623104362025961922042245832495673834315679608137706678140423836108820043970476423286678730630480386241400020381617283362518584108659590774893591733721541925723717447114952442835239322824613609469203743117919853228090218474897843240548038327955822388153555615200532906418185351320760193199167525756703520049986898541564138186418774339366801805455244842811886206096736594242292753338368129607382334634799857752478415504638571267514910713365433414323427785949502939807944257807095195485985555852527902140727705259062562582643618355106334273377538607516057572163986359930538043632010685080834393039857180933617945725717532314353335289392234649209068061481077839937056241393868434046019833330649223576395832336260829257709190471283856668515657759784098958248796668311572877047277814397213680845519053386195617552992189828618468229035124287447431159865496227518668954487116657253402272557226720647470075810389172333930273940466544098823338221387601887248408011548683760660130788911039238904058050001540800677122429090380214384007344234211876713137831292738622912610580117897199682610615186858591104309380829034375860905069493355691771634177036639838173844128119499436660118357455642264943160554623276746692209255167449878340586244774956472128458918405747500991280031307334805972924415743626534062638429181820017217643125209928923109072466124214268031684474392151771828438219973056920558454789892640091026491270877934410830632486650414199644914901462219614816355122376433741508445212542256432612861851643654870954981294506018418570396925981981226117543952028422811279600947298597519608393127142508605801449989120343693556323374942746192588674440628260175652046418900113643566187042031169597115679464190623594415446861949947144606640435389138630607991502059978307351760554959341106531325272095283057117754554400555286479600602917945002679147922418475321722718684352137491597776525190552469100775038099605380604450509900649739215649306132242601732410752177839443173768382495580927441532599389635221461334345952097961883589090618816271174899118439916153458727778887823295842395675115909865949615133942286488377649662879242816690872207449663114825051436681674544831587045835717147995997317173917803361871586626276574663455394729858652726128000756759090116356655952196788891767973849385001946390591925535579590610427675079751626999387803213871428966664177558456156777508554291707311125478152374248715954077724974132339535146657383590319036237409731919762472422348789101062236842004268589783025280455984525430237373376169690827311030716605094879838050863107910289363338920345659720563707106282094281199876324555352899204653934074854152520400654042799101094924739051507575773423972882392789994882497752875809380132580825010961462516179531583702588876502006997934202359415500468655035059795754958556614013665331243555632250069072336877451977836899420979262572489165428334531626091599967941852965403213798512588746460008581154907904432799433572764469837975083373295807909139191875859537408678473679308753815984947575434511652791159723909855849515671213074465807130711104379631369255484422291494731086171210906298064543782142175277228778184122751185267254811293326867959448540647759375059871504271774010798966513001028890787836732600069488985441604078682902389796221867006785327129663711556291841282279798034394078086779226747629298272970815696017727173202103832322342925828885265408649294488255775727649703201578296556502349922973409523651632781275550513851662444575727514130562297306655343598515941650395312295677023841669428954217648480897623343344590814929521232876487884551251456247140109771223937407502794386347978536792503513220251639990379837433814209778460147892053335646358920015328353201326026509498167953158343929857246191816266960941210487129127281008884593999394538906253302115919219519101777921378419698880550648443966158407364912702866319808862131120475756868425266970247304811091205992368294920198149165055772916515533704949328241255985327261580431421559859658935572292892296341841700476719940193226648411552133347143395989259160860218284495429772179314733640399467554998634551683171326654899841006739997641624591282367423208888840430343330900844370843558908154140221400682180769624352910827406734419991620462517710256682688323950039235523160266946407430935596684369477537152711160199475147345489290016115595521647736173540365802717972345335399457200391280191760391533505206883120596993005519708946521571284420653664370605256046091405464080756442324518196638955815132343822652060162060766077402655124200088094513772710570028332347667110230226976651851095148305514455634693544276712594249914968660630877491281496404765979424771612821076169700897718360632606768718697057734536659430411961829414924713643848538052335106621460631484859384745740904959035925216688507529494005084622200396879208833793307799565193443999139407229492687601358884462784772478409573172550377060717439398636243452511683154570139936384573000389417765143617296652129692532620899753486669083089783548235525040530675074661933094073098498456594181754714758492644800551496634580280070299981871012756726879678250008517552839234215545094326690679842549333903649241632311229541391711589797894822262966639469426654979420731269503462538488961394539754675360707436221355314689811633433118590746493461183537310310700931741869358037138322686319382678750153302329293493243226177859390245737875621864765690466382847942479054531972648800759636954675495574100156020095320265011287001389892960794899495563691820300821310089189655259054361644075467975740811783770133971765331972788102233061839968631513644567252279640792878007566414784652271209445078001970118961064229921946218076304640944910856598604103199129028958576700458949829281746850387799310521190394514193345221364624938173048087310517937775686238282962493292725770255983162456711121948429593914289857198661899360585883396374509038090401985697849024617104006737394978938445347161322199708207655975931300269628381679236221857664472406057115829313146626023685065511762789001028504680891000489706338855945170668923114036541203537045912165231168996177777156637167085251820220866950968813974654723231162951299129929787730602142611338008896854321452484360325145507470636729256052796504099640185268388661238715416285638990371928227023574712389213699737399406624700621112702301702543532857933765177457585048813838886182807047299125103450089613474428523611247150440238346001334137328521974937651625324404235547004392654484631215630980510710648198119282842230679419104837547327847052045651180490401275616222207580742438110503799121159961468834190703545210981013500538500026952276899990699536339508373974037678250617572035688790350241029506562235739951260391655175065848775758782986070966236109891511578354759505895355198237686102229914825318049831423306050126988293754336198517397838605561530448092225338073519204852691284273670029823609707272428812186525828424007469170247506708622890505742519376952649440954977022082264506063517231201412442704680770766624856669684632818407514989436609692130066988266737919901260040231425444718140143466178786311970315190048780425188387175334471115436318200554063594611504362287076874929146450435035096573579133343465996211970003026501185033069553754307751679370771890676289561380600803616167373263339958335705384343922375303922496980640164246486572323021179526292475416248897656182704420349563442012912970134792284450807502902992339486189382458182051829911589304542454323491657254276353892998697270657548811829626056371387482450434662798792535217004220441445710371928313046799776286446035762442675728637215813492038295388520600782469938883837839956658375523299817955946577762506507178936847904403644467753412928364447285578078246939979014786732349142865593563015860461580798323162043945619951565714196438113376664905203929689352393840946883581680073387615567007402839465264390574845865375339627104578722525296199232155864134867676147944752210056680081687912396497526070791377775277285351407839200607175109409352409854649862148362711633800771028418053979180549770892726823468387987221441839619059324543270831890038477843656395817073305743581607247335544951543385584170439873557050822427858426399561054454824093034750983614423770035958831506370255920512842657909010987628947241085425068514112012382635953508327735302598803148970976213566676417376171109728252938181254494891213263058032454288990935843996165094551617797767971450679622399632973991782190765882862310031244423819555044838077890742189136742514689269585205491189356383372291251042040675191620974639326208639412181118171965424191117579407468629780372458100690506182563079494230720699409664900857812347367955678266960129009594055259936898378089103798391442290095752909799626619091597213978889999306169313888583281957165293281276827966383996366675872065246391272856014927208893370026870042660726956652710826777147211396511039970838623492462609829504688827524135666226272839641113340654112478276489178502646164867786718926335533856413702992773024628112524646756602836991695330438146186183543752034837990091885539402269556231232747809261791258955088530191404676704331839535783685982201573263170200669314052483885496804745362118372650491291251316458982566252394733238509689245352081391079559362424758903824649790661837357396518000057081352273108404637383041971315962220120157466636738661829365198397874908531457632587893126965026936030844916418173443313726124388926686485706545846109579400209551297025929867371746344952592699881238245685365272773264873316127004664355902761570940512938823899685557703233017315508048129347120761040595190566307238606247057850000103052479047807235390080550281617133746789181895320631326459357060113081348110838916842053178776415883613592789373492605680525182506995591937441479929143238460734301354687173144119208396653402318174557969907932530935692097870305803543776675862424771410731905265482223782222907777653682713852919851555612623241741072760801756661910922365690933773773332108026206946597063638214949306298197773113510549631794145779135894915916471009554054772017722466992092830453425451109007171437443017257432013714775467015606553757011457738960224081802735241220130936332020587854863432261802464046096559578123493422308958466180935775337708948674453319574107264990780353914568000443981840510021853355035309923632225044336490371361524454959282537243820162616561514339217191285880776697978674739230882496784136579900544269227731087784409794336966185588466257715689955645271709166286803045693765423722629495907495890576566905186665496290610833500042063119011030469716032226240276286451703265514966072377390076381496101924107634273878955823043653572947562301974802022804826516788846720760532806160008059985287742284334311652127145098464094097759963726596028082466227315349438545164863692467557605343755642789756657799318854654907501257600577780355451466694641781120765917653587101852158231530482641882212824402217827698448297839437729188414488271884924504382170386436370118247843453422467463544390775933413394426188495723257339957496932424792350111074744578577996964672427005663963949632982830408912724964426112934720329378902817820557020547690339844804444902963035311283635063175670912048073128503620608030487416552924765401360688690691687163399169278643286216596549794815888709394076372443136926228714864098488114257370246054834062645569618711119681033714128487692470908384415071053517599550928136945024320152871451397714625926524226985086904295448614474371352273024703361318842390597279570176229573522292132795121076464088394796391371649235620815194703085996215601571505882981438967418070795166400807011119318629810832393305584919471416897442191981849341847151747047794148799927715614264804358167324876332530894043755210238276341058431998518959843965192451440381213701432930892233951100802073553254851841285905986235096631279497817589089141980838097423527470622675592554811762651985517314836352305812948615141240683536772685507138833711559911286421057311809075842749109831679492244336715500457333077392137761706522230924763559448226420952691545572248194401789512115797826079664253838677953416455973787751595097722510509917240134178143439364808828156960442823281925751943633467096158608073690905639306556552407006099129895581121182193257195669740929908979003443669817199154196526214696904402224798034165710858283280915511210727124364552979029585260633302708265255167081370263209100871759168133767773283295067853182105885875301477497583973974568899489707150013812666795122828110332408479032687773611656174532750950115992907522908522379138120510808354955505345734108509631874882492871464786528500905217963793681472906324025613430117686901140134786151738852914750498226188317366739142121287751918164672519475234028339356521036613555916431131340671831427063479760839024399718308684122043373554780049158138141564153440440000708689037942514599287294058545522908111921879413800722886113639169560823142947195857795410548179968173165165844893396894463575605161820698459474366144614506648815064447135841256267442148170992096644726388124301426656103937250499096725488623721588365135087595327738272156038809514416339549173607116527105925600532805140132868285805750930663082383611544849293030136488258897870659436229679336020357058157374609009473624168779656428726778165600142956208403428060123926440202483386948398037669058077147499299782011974995018759384012223312643382439362769647919973530253789431912494683145840542745924483764969419866196342699168375693003816528121910231536577163410047497501213524700003574334972614757527442099260900365398296735682174654128029582138643426162145892650557579786722742659875959598784253492531185519516879931794376801589860177502951124365721811260464564006641689143039327464965152181432324154435985095987124952435502254396722698957753365135205662090025147621189349049962610811364389834781902850416865165384107300155325491332607389581455990822871285631109210654839501657928681355287707132170241675564202757548060692610923186603452343639578378529503460378462823209105171949924220951162870414635741158869547499763399884687326139170436785884313181010013562549373817448507579881608066926239448648892594575733833971882391563292860553501144801460520210942997580022279445253192187066559146381988571917525653477204963860951830539676292294958990154678966289063870924421819870725490519175549874142149689020974535418781001791803280115411487904725095729658991474608233152479677799079363678705460268704296204819294960291763843121697761583880229066525773411569305728638905883661249634632950751702210812494595543245754611922634850111342090926940803875710502368444110579108460946941941597514266799311414219144391292324257416133210157002450550741286163805771094908998695029658484738140730803995361949678190680650605151830914183710866535411651884346102695284425658001646519493116221789705863640053940798115037865721211692882384695298170943556893154208835158288830177935411774362941119649205171421755125077996087293086111761043310660215622719265978800951155803421775831677923676220726645713488028944278205504571126373220728604800921422480178597188251966844762422407498445746518842691410433891166661038127729435947530328045986866884874956524726095563142835667845829636289677401422592307364722209774565031334771518836857455113105974674342324336422286061530927717034334526704501289921474324143461055638397413822206045823926492150685769969808605148179350276818258234743605430790280324483672442287620439696903980742092567853987582157366618479363320667498390930827149304603488198239121044503935258697343443492809257292456102278689052575172380577667179933996755197200146485756801643749632863327274753114824701934698089516782476215599799681014090491395556276415606571806307901041119618542252032943495197919847961799715612154330943573358404865076923252819131239048134240838476704054242601664042674887543831042200895530004315324568697960366244737180333343640521586271302431251780910372639408537604905019280295582129249214793882738386865869999892324135358502532664753176177015319473953051271295951343216309825345982050026776829540569799735274476975656334724317768082454740823830245027575224168396618593448791811846281792596788390026354441228797498031850723649058396235556935132427597729969856528597167072782702874133902846990979759033302923943047556191903147544440089773454085237611177177895381006433203084502784295229400912372540323478910604733093842558972766275775424638624899022815933149402891934978341170569188591007502956539275052863422583408068998553295655421088664755073006978175253542012945016825542862881426333201555921503166121281654413129145490602410565237126242438501942137190721580803265302448469464842614851148425834547153881657139970672315895786831813955634300061288462646037540325317259795889433624801007971103853581068217864031222304732429465421689929661278633671506988757340496965926937445210160296726405723298285283007377789490471157451742295545848856455608258927943882368291068116793604524011365624063481407459515357782262283527400788962553360386331856643715354260159470206748049727701347764146226037131649593322724384977041403649564547760416197042599404730729007020214618560758492111932610988981307015128220157364798612131934171607283478676000563403402721066498765891773297109747170374498720748211322553835516758803824386264078775032391505419838694407598900314315865438291265069331352144377881935225189671517062408817127231044548353670651496840195070430382280951838276217995532144443446865767945935638459098787316354741580954635924014144378027320438825241662437245443372501680623282918785861731689423275588575834718889703533422087603847330384630679127835778186971378738097258719812484407940944783357919072863549566821948155016046762953283106927466509328139008710970434465157733147316284898358906939523163809184240332227997402058260439803213781472696920197568885145158425865897667337014263188980225970399153853016219935178056723192850470735488948008061421844949156851260102279545399910304790850079646058362524360716248651784617598175880165374484066718782110527150046286386928150774287709506580224734972433014928727447697440483173873095672702398448273356454156030496775885975185040042553767733082586441744750239893767042466614206979559514348131247239774012853982565943743992127456790776752156736354228820255326206879602421772367205886077917406976319598878638071301374265251173279465798442035554016601095290854928140803408822680249217760110261746485872431131761508708908735180854364053005550849437755044220258700054067217912746140377271716194881178566619232738191233924847366977033946031173507875310005021927033341605438156773751599764741282450855523511301223653949630757895339480908816821976155708423943180747169013174401529442186904142247834665600306814240325365719009283646060586272549590124741879559743674845103085769849985418396648492063519325865354143808235396629396583845351831651811488961714367706505250558908132759743425344456448605822652609906065977838570574309154928989053101417809823468530963586550808837082687983136845769235715285734624109047286398091877698824174052240084009185747445817179768155502433812492520732847888557106920482846088864237841921248474551390292122064948220577094141282644806459133418606735668451574055051213939407584705993727488410086020012512536057216023937503981437556325263642532426644372569834693625231746736733554657613395440370980497312995411581289787430588118106052726149639530134557602228414408270633704992782381950661383393423454082213981046691605997185883985281671039091042996288394201332654561963362479183718723731082329018978953506880611828714171902147637501511940364285678947907670900160166657851792687941833727392655718932802119213695305592139499940237463082418095712764576519252131262089422114732406940675434692339230051299892480676911947176553563438801650882719488638785325730564152362329626794281391954597977441796631511112273352203373222571848705611224869245659426086910726054295689144498183051442580243671261659820441217819226211938876954271997469681486471808736872538253142363501635666574180151740975972335187618822804626504980104432490433125256685447517203100372616211620016605265994064488432685667545963126709705447866591728183255675225302535942033926001516140926993839799449781100774447800138151397363943200618540348258713787087621979014810849102428213252449855683480664753215934914422371794321869820795553675280394883422620672812805891131191909459069456382595901732697441551640409698939375503780293815158523386677870748669718369902938087901131120544332289663108413797206977602428143955070927884186938604121716821625991237154673866691627188823729488633054152090475054322516113309525223309859266322145858094538181937442292730609067843608634721144028486552699081636609694779631565518252909913792408232717636971368999077186453929947468118576781250365048237887558458290248762129937022749874006898422314686753097832929806365567542689639664541173630055958586823708239713352661257895271491866251765299851738165550615983233764651191632985972121213285168119837623696866503800066565029522375027882260951086777938504634646294802617182314515492042680065684309845905252102383706137894806414465049824358505159626972588472961451471509546340111104557399996438290778616969536876470967226857958756922714118858424208316693856346597665087889087663602457818633654416104804139438512725889446844590503910296599983965568543840695976692398813038406343351751521394826068853560491147129278582233968936362737558644368207210979050322833612509507265514605467291574437524512197209563367888177776816237884619134894970920386473031837138634666707941131054365632301971296775495073174285253574892514192663493202095165874895378822264168018275624335558170181422124647457616448123191236309099074608585609156688479369280428286854192097645236957252542205546434831136540105159973983718232285348229972580350333082968152806118156757146685459263746286542832690670115816118432890019675498751683701143256241865338231826727837028328767545701612754572013062237480293699034412946738758209892041511273701433422003223515816652441540925946434257288584261228871691103853723108402262840177904258624845380479139355349929412196183084219415237285932375215601999085578737655771643836045047703742963861263576371421044089318101395022478841140086902108982238814349143549304213558486308659193745676550637812978776526766855957344226430372394455988106772385589122349889924265072084641674071086847677952896070312846358224832634897902918989204408485632893309906030510607465026037012904454219710806367885065366103616963341132893266961304967841106123105323714034230396089920471041623525265879708039246190840055479882552439941400989124937908833220966394362370846466735293965777692743603244077110238091920744247600101790889025754360861397956350587833696250231310146817797941146082879675685144019177275454992166031489320402375985839274853369799937568110898676697343974374907732435574168895719879190462295410042421639497251508570540118604782248890231481432476601235709287318455609317923361272063478506446339014825233534669300185610958212101077052233838293843149114739605938069718302777847688593375840430664672717483617521785835990133253957339370012506661656410872480495492346231208044817177151326087384080795894252719949470753964649782301619460184531930307075287222233365657476262689159661440972949590197114066966165979919598834646367925280360217115126077602175244743163770695851021913087501907503979122318635977011815140813983753343102770989553920792122734785641707778120245851329459081907819723981986351990268672068501998181517482544109158620319088910577536327118794686501260143476691204423495552942775599312060482953523731324498855201518233280040425031804667878463754978030971259255668832597296491690946233332575357667417155599145055543767203255866102890595410076072868048680790371343149444002460970954310341577901550688638856677580192106290092085911060184396357414104100228869453916817289775498449620285770404568481151924467739539341555031831725221581913447818271749824097692421246850826412177854855287323137679008720861469615528755387649010200514837539093380525125624812450503619253500679045547769562792344752931523222411882422699109384245551070280642060371798246388869516244406188558208710730585964968959380166491806977514593923065525118816871912220024323720069332825212505628664588081659730488641181260735695316198735406700694127599711674922470548468849421155002716703085099430272982823073534471264177185022230151457739820361230273496752827568726217934361876075912781229377539575058696386861652385131455804723108179916856645092438800984946913320540807546036411774852857909575965675773313198376826553499170239444963285178081406429362873349240909749082349793030828113228586223301331607203784147863556864701708523565572747572322905605158761931847906393127505297859667846659181597886194344851936900906638507212257456101921547105120000940140188440116688129038449095817781342966856605369955801083406993886673058610846032633759642904676965211881444362439005045756344519429873021492364325206248641368257931643767880521877656303962122312022437773650699464878069607546171598623381071316166042555409046995411818009760492418139365146102142405413735662816062087476116765780322649354734882296553208884783135191185398933081768445222244295263639884558187419230494858758568452050237179511044325284376193925306166354108766699843595321644400767231898377474996647571730364135986946275515411249751380478383797462288270288228740255463497134286371938821489357670458701702026544209271261086102822091728432915004648778202788523756077643310145160076244412037897807227505410998859486401358286475769912439413290358689899545668546049440549589196867323134397550997412343101469859787143224083201219056781422481183319884399156280352302856433846461420440844251957910147380378262440941585523224148568580487131075624680590516993065322964306205746820484880266152814820127637784933315959112876947215677278303726698881308149173315149921523625523883442187011299161243045922638039106654779629677846934919698517013889601731967706112551619294158584325204321645515627368019162777752738953326276055897984575201512156651091029567220225478623891658336934018242555486441758103260959527716602215196865307855916066574141686800152103955704728670890057013831561855028898096230129822179812820109235814221913911183723690357022489968453240109670497604513379115822924534743197646671526078306996558659202996307056883255776951246302789229327867748882559724722736628303034830920360111330294530699595345198218437882758170297220054280387591976363932898848357009903490568741744449908528284247429612589394117732975155104806774625740665592961942961567260578459617152430618907974491431549731217348716197558386128000946184880350039517225304515287129461426871877313467111635974181692627949117566778064798618503313062386070112394013517968206877227115193182734984332432585561252757518569460028840247870402105425589048515272287456369602019546139418929202374202044880747571421929966250430983200559831693491346875930215863660045637758619218241741218903461526459950629538293556881590828664403837867816059565981352493466580287183650660355518266212909674866431298284159880879477370629021983744249418056264740849414556739393534802401722202921092541154532860461990119406891591289734150970451947026149921999900874731361988349414351560493229183551589166788425715203858656274862919470109819528705397448897153754216281817338656902328697855793742722684678099539183122756906188879362075769269912719400748245287424104293588075170702172601091132573627862587632809590210996166822292430212957567087378132813306181550278011689453070105045128790338808482493458467164938369678359845976038862903562975555228929338186925630555939975295736965797553267911821760375314275939845970114507619149772325588307729347531391338433673732959825765772644607987895665984886030895075662008177893786576558894932706338227616075507285194668177386555123633784322631370969608517785300426087690395580223319547649803991120859458191178276825643176083027651299906113196973147479491090252268578961127232702674010936997135589356130016502780280056248560243023870088322314874960569435448553653544296208610082565667903450605609199950033448705935663638430573130451111926651990831797924308040588029839149510725399238004423096011578530193489921945718104140663977290568025889558101919720997268443691026083597702670912472248291399987363268224263102202650210884680770351703990781525669037868323817231574884999209298572874168107009236030731658306112275005895917635579921611792743919723725275889668491973051340872358534387164222446501872856827430236621823865106469712730209014678964562057276680938997508426412227415969923390355840903464459730719755097820929701382371674585831774654432255996596360264992834345031855512954509307438275008417419853802173201240338896927570444129562071105103325288357672184398372131256315894952365504986933326136364274051517631550044814661654180943916895934264200944815075220385999832067758934987183167795675504238376107515686020074489003487189297731900869305495366370521754356350735318540186922409977707842333489189615066013900633457468324255167173238060071803856093104185457793400686111416295630718328387713542002319002740458115492051246115777971050069968251050095403135400681850644530203807506318509755172778417567663850521586259666972163394294451335930009800540069387542963458015562668252853031492528027557869331591381545438037137867968117935071892039947721317865220815639986343814413871492374520428394750000865512486595199219492033608252255804733750677359907205569847193114087366904397568856345815185056138030757825928891013995993932247837965586925910685169919812562526173947007353509375275880921579758882684380005840591491555941135615139957981654050987945183151209298911148977832760121463474341345137690407714711076773163411782095899297134829728079630601194706427869042152370905431387654354703253802734954273081325500942825367885052343467180376529120217643335491179425037925742044926464699853814550032744876398489652948042044189534357391232618262512603755531408379050959249953243609419244519961102910482485729088476068007555747804286553816251255312109246423496491486858166540143850248025279413681455503849790900311760096796473615999707191615589434742714774549350063481572341977424451636614513413276600986938508570512952934849510322050042381365788425218327587796888645538443237115272488459691037856812510419804213587862915140910814268410696229898613351134851922804345182213804542662952788473967552318391266341620463102700137128471776223448705116115074703827265504053422478296463422467793803544059257284416672068006425648940699342799132885836402657122582645829539217796316498171428440456579473620448808965771087410610136686045794488492158946225035840600473470164818372814779960068856815528137257309773610892346781253826129038046187787611024157709943921891048398599017992585608464424586140602871245893545865901022023964202807512516635976852630552016530983948055877593503617426992939001830678217095854564290905598368176720007738053894449121678844392130176377693877184844514307611171453964151371786524590730802639884523285247119765415088678825617899152137374281116679223510151842728902561800726546145622424152694855758803537534361345225924725624315359157389407994324887940235780162274523117064049892775815863811658181515244033971233587833919969710775148452969427651133734388223502268109575984169526826334052707565055748085891405227442659065715075972254984195282114802652689804421101754466616487653558034884899422411615916680486527391102108153379287375329941458762058769110288047033514993123698033254477055225183866214650826497278407403791245325783463879500620465791794239963553247983163227627517783234567640284295731636393056718176086722402994057713001281191592898637102561984288152789485285366913984487517006968448943106349578592974863078606690497594880393032349535409361567613716893521492595115382578693933262189027179571913472836458727283693659732067329417556722544755747586519346009599519828277103079342094338154224768305134959660706459553180356660367243790970052192093548553148953397631028692564108224263084445082580961930285553312599332835134212604280702435027552626035529348021066108133508031806780157337518238608583673029721027676983819277386105841791431477621268450179316213852977663799884672686417959953984516514937199614294635838752268636076964223816710317945315617331981039743371846376002070341673219609603408722279112490292706385615667363897134504054339416482256376333059440179035118930693874799619420968805741422574002348307345506187278181803277125443353609919238697130869166100570284273528613522689308848214252590366419449784406138527137149477336877291371024069882613188234806524405914964637448904084187587079398697803809214190112669346583442349737561731560725822814001574800177392174006703453334356550649898973642035000666383216448027854509117751029516090624077317572843983004236073538823177024474508796225131223314980174110432087571018548910219349881713946189323929889805548538236754139091954528897835471525953598758466888521803557118872931739167893651289647831108365317420193412997217845213644853324619262227896550307849395262842136140990174369631938177502191490395136449804958189339733839001668097907292825544128641945308699055705097376102065544624300492655059775823185577773034751530730851400261881497175062057094835227489727842387366848908707002632793456994537824494504816631636741506245119160806367414579616450558303066269667966267307668203127137611165307681401048029873692573027604603525219072918818093479593174008439855436301640435266071098315220178156819106944333656492345457406364207377315972600935578136049026895170312344508249820887389693160119969061993793870583695078541181835779387822849152829772366906599056294832583661590669079313323255462893085615723129028779812629340138616734052881963742037811736709696527496972818545964212600837019588085175332827368196339206796859599021813512523557676014056038772560531038386036781589327514561688087010393416255179085205240003539207557094964477011411475428262144642938001390018496409367847063349922785862583712604040071567288590009791144749679510474468942147242109679143634432905253311979281488707155782441240172945186060377874650094916256739174807494031705956413131566031747560730053881331043472703980780954404087177147566393230597067969824149924808518493523919974374635129274492114542079225840330537696661191893050235557640341192542167111892613553171699397612330622429032024260449076796209395233005334810315974828678491700168752145820634586021058648590784355374521257962322906462799748130240292595406761874141154149623966951470097598648998861908238918807038057641569727366779552537993728835929039904975360575464842092275267784343509896252516917304150797541505540266319663430496747993594030568952272837940090280029116778261534866106051754277378359315857474142037515128039781617482250875197407977421684526196276271504225338807393186939738974790328387802853282361907140051258330795064829875188408924460836220791042583241403904987455058160379606578267543759882912325497375020519962846486298657017137184994464667748087555543096728350326482817590406553305942504378901186550445138801057895153765003926166359795294433747622928373121600492779599558267460645621150704964323198479547874460938431518787085152914068230335131187690321345008714020981254114492578304784795471060823378646425101912572504949742837440766035195672872143118461091723344860081750741811444821340083111490888992931716738170990898731002310670759354659391731446304583303083866914394713866374367823782376889015339360291440310071663975000817203839832644587346755324784563804270934656204550092257456671288880493179908741734828170768560457568993624099094308442698956804472636030178501370662632322171264161278491297854524399192079502936657580069753564577945562973749511380892928109314324490497119120360681076090398377789852146227172556363818769250868182971250219804621261341466263641027841864548578836214027565470454309237944440515827107635602128196434716971839179137931238204545006220508375497282933238044249787942543761758564725147115136307316637089654575418496968125279476070452793001592465480079462731649120379957121547795577745449185705211565258486306520176055614518157372903762984741424426168355584359027715168696401354538547686106353987840235557150207054088788471013560330508233747245537104487840793402707445884508559500910118907750743179825023838518361116860725358442549796447724111969973255058093235365908500971031625702796900326111398477583859589096240515564007864478497265685174412730133644175426710751912135739037719936536935776194457916921125656820882969841870317881040087897785302727406770819246051375010292581142841566283116858696096573348830294891010145237724745885310948630300830548064790668459227411897213328516876076357798668174987896881466632932074802863899985044501734337451298733837918741582151726154462202523756531054415559246560758752612296882111812558091441294788725079390657701111712962960517456952734516128036046321350163546877792645584548244083389520680298787572418624598554783402933980077048588764207869805642112710406108161456181148840280872078085067828133562087308160852250860634494639842649417930683588274537673882810732407852554821910410100978195743663911095862635022818480645938487761771055092939498204342535396780893600259004762228159227546612347542861840071165713190709743355429921426164469167139819453401457584051352839565246587271702461579856384381862809020950485512349315028926337129472535202329828083411180174813623924315822882190979322115156123523474835093617463746788770003571106691162283578950172901180188937499706913516079635243374412303654988465916892749075102732719005462347441225146749513962965249158671943014178809385350475280947808576094189718058918485996938312174778331357345778927516282498567276510173587865657621192310079042280648192599581576715325914852117253269558075867624606196442144946605886107604322953733659628284280917551541640858633894027096844257054116136894806217379288707624145299402047698354473949915572722998996134452115940535296709039520707784066759071726074740434345287099461753385835262351622196365118067546638998221273947719887208222199291235997586691953910966468070933589369224482156432634205176144447011915654063979669014891595357226359477432454912957710936802707267087499049761264826719432535851493231657849443635157743289947378630823143021447348084967917187327369658541167214213302781042851074517078576784585488635633026110232145971942641778805590792105339463143902336846135327293074574193226093760332407247586191392145830877748153880530982159639804456061190360257345054872335521483340719166178366851313905011094972344686945219511939199688493844658181333031675885796747335259951811965775057967328833940446048206749395043566858589655990428800310740419666454946218980347540694993482919318300883274587846976490892464196632489848737245613571076945568939305499602244640080250731401608450879929058707935452341404287290257358404818797542955324382445748357607618657557426696529337853631885937725342771736099567129837473730455468632603405760792087555568081295462870719854113045198663096674012305955526516189123206222839602559151428213819085619102736725787291106175431713767927100259534157194624458670724395130431585101238936153255956269420038778662082005305998188877414755281221898310324653621517374221404129527389226003570096823914771119557095285332672207665054708843183839597541018784499627322432512076451605291213001556220647063735885848181901873279507416247599964964506134346254921332637370892692553518617095717961269973164176456911887896602974941634805461022690043743298351173936408735703684106883861599048187152099438288476684940960820423777331311600865819162724939750995768188054742031375692797953048808145599522796439303328772582330946049493211709656625265059266391082817006178606589794237229267170485329850388038935048014153181946252694770522637684532914980153159969700437135140552297889195646007576807720209923279052484674347014567907423933620240834355565495165426334446217273164503472986603639111982943510778482617276371690255907353221947761676483258030219837050860791107613967488951441879494693012450036566346919286560032185837806471372156381897643007184528628867387134638335099461977098472946846668225994424903261475169730906872499309689712262586653783618890602636804419329548961478239960248150432597246828965251198906226949270121064936101954157792735065713765180054217691790572983318072381104849514073941503090868093359857774721809873505534020716435831871358629946124223304554637897666915935464306173176509818835058193664258899216818191533382095217011502706211169288493565581602856489415688382783364793344695657181590106740275592156356869271517645484036704712237917825285665909788932690306009999759888032207214622703905383783839186711743282230569868035849866584588429667042720418820208027953053732668427057104027082048048106422380533719474569511219641458128359012506816176560936015743858303517212970465335922440617810444474732577290654152127902935198292818972985952641063633106760848837852750356586125792163177006181378359532354471126498142327526017483901313403273998252375912641566875631540045741830347499132858166081531000355907014005402914753136149494325117746810923622741469552896017760618441364463510418625751579308686425956467156066938922197240220452956151120984406537427698461354329465088558758428483158384238450945891533115365286675763005785285434262085210162206323516917045074020109776288036851292083654042891888434126857642465006554051574363267060759455239159013245831645818236713881891481297552576070227548037133422400453413973654015614231321257986365855245424153498338383461020139262328018311454340317025254222078270849404675585408384943856839063090465390853080133918538156776913858309329657097793740967058688476174691555130027280131176056380112002638047136433373513105954890781197434060227751367165391668402496435222108746360296853426481905698074907732519018367027308786379192439343282882510156052130773165710652980020383360937137399034701703616550938599482188085760081277693947641212718587203462113680513006293248006555214075278063132569317760094769857621276041440190964923914904813784578281644580103455290360847795914747729963347572385991867990920201600231017425655639307187909631679556870037620999591440464143853115684034741085440354957918410495333445623707932818412416496156814778020059640665368457330424526526066902167508509924141518601715764366657602423916594027259672036934430959275738427991212114166790985204193098338677489674626715621197169787622800025960836743308168964744679599642965210406824410303460871815241142347383415302091959819510702525817351376533964988879012994971137430235375261193084453970213945212176256285906710583658887517456377216757715917964743074298090446947460351339783166971281807705977709873786569795610898717859261490053326713482020711667611101111577153618881977423744015846377178208784439383556962164674162502108978139774910348492097107935112519955132358319099407203873175697267413960742673847153279165870402814182915049096631076191426455720789589738343446836197679261932551105187784109928895167993630763286754787014082418547317767495033127502177497045749769442307502643751537555356288659413029383802835147677565738960736710330965768243076550576011567910201451989899614761535509199720474837664096952639675338055978728724957674725475837987834482268914563836996087549426423236214275315801866522978471158121085876704541885456942570464980595117421874110698046051388812603244108856932092684754580762463851039113461889645190410754000503562940650553199935624901508841080579312483516428033826759349314329894896469162159999871185403679258235235502565643097064060310133670810224591113429286450400264307859610381193890824117975130786348355408519939934465874723566238247188456535403016398692760532421581027072446074782816603075148141351586048757678612414128321501353013699584109777240099314074962706042632849247236494725409430819775460066306544042776227144419305099547734503661634935596628111521409938123544852867138436305005014260636424767179278962753763450017443821158070741339238591516234278067654074988317513151269397209678841813798680852756512397274194544374784899917227380372243968293766878415677711456389994207820830709614054893987384511496166566052238274379938887886259015803409003304267717197967221747746086597853375175725358279862736991162570876940380467044860564230647535599592135749425842846915659996644497247689374052637314469371831975467709579627508026442150845428338432146502992483855763668304348068752430712349244030298415485276432516614281843398246670525490865701336873453964452286159316454087032947991495369948773707981080491319658729623961828005345757985175143214653565385959525106860788013846410771647212097419240525896695642264170821940091888102277706536680703899866123802641956152621385877730773374071289344247981963700502118037681980904696859304604448563621029635007220899101136948126366455937379239346307655560066557504711379389345799372102802148320769628582632807762070403692764321213715265342161703578672569933637759157356178914453678738321205428652749404385915189975675335833691336649742677821940683885356913480551552923489260857567787570319718900976513440844082654927291178187661926541113645169586447545419366442340669819879685777498720095525941622734623609440764781651563036404577030525677415220278772877708107162308120435970866724125540453555032207431844786975201560326210684650232666706218968771765875884712563112430101999600548879715000881508522984450360908451937517574062453499584856763222300036853911167841149920894069878378075428139738741413860015798381240809195469161079648754090735382469124481401764549128302524861831110828661254901044400661132482683576862545923029010121577886945460056551716987061176391620685688794786212798204966483225095863218397518801787774610709357759865138072247729406724178110739385521050963434394816772783649721392061302058749750185790195447873945281050284068553688452480319030518507168835140408320484312844417241514007327992771029870195074737946151465245159441138289175997448388223715579549005468417937085215499927493500999429954040705487929496867251311977225417794541753023846452645446771912844997538080861075337752916474445303251366024899158189173295276468630009971206912313132418552250050118887415428319974735062372248194842474208471595051876333456625151406228888762250767073355381762269284681518899730235549854383385235286518965633741953470705087602980405846157431892382732927676856573410662086375005967250187506328874835822027975337585802177728940636841931264608992017867592873215358241383893310575520259364402581629871587508711004046569890367737402736807419879071727244841382970984537940694812641902385112046816305572668430702310098276244723042426437263194436654870478681622143390387039960815752573330832198064993626464687258037371051563749869688485855889358439041943635210577696867011720248930966084933185836111201919009144615097336229193255939414454606098108313418471780975707486224262299937522406060284421932634293655230432326244230058398131433868806626117132978706393165460968300091371052568441725233867015432516659320756304556819492372816302223536074047234424463942641383225831861129124356878951289064138308694572012200393827049515898379963829815377619789048585837151461024706955715560832367562350933823517081322639239101943662324202071397875411116981046610327533707352771211835544977166445348493739360142159444689779294863705060647371246840615753291609500052168458870372188734586941017929216846789978114344930852568944869049655759602040508388365090886958559362076961797009214692237203989866908063479879810594838996862391639125145911515604499598841508501493379191877573338816330099566369663842230055918058716716965283310340289827034417157051458704649160909027459945876725783795327392649195789235214866908971247053045368407930261282209594415582630228632040521416316674368322609528186618391478330346623162993434911497968144385476499180247124316534031169193118069939918434335132382152947492920959339581362767042754400414251787358994905377792638120340840948767175389305932558500849377610964887162716422540724872213227090768453410989290667386436421472298633695286440352442767857987238394880354020672722891238782475118854690452605002395211215947624980184226336900344187393898650754642985945457088795233792418105492661307608984931150594520653925356894920358684220008569845786084771113459716822304921947332243827682927098046793899831125019711951583570570590206760632851901093702666502052778365018808308842978712855990977607287830257329055434480424862990586150339255153980272575112369777385793984356989463818276249164814697852488142607605035583567035448951808595408072599433258683790922499006094766803441561066403217116451039397008109462846189897777380196961037814940667813988338794313754947810316155452323673015906905805641056744457945113028059903303671600752814407342335797737735903664744341579389041017633246572137264184734789846873995329523844239502366760712022363076455295246849726338624743089116226894396904999726816026491732146776924403664994510686452158250565517872914232612310775195921451307234529608446635555593119257498919567342297386924327894805731222436740999770385239994312835294041627079928380896037131143239534063517270088077935752245271608889651561454692519076069492738753319096194690634357828782177034091479356659797448552359903635162121768455605370168900310442756504036346602165862383971556178610884408972788181557673107732034913814902821506488380456984862216645229836707235333086665965213450521300331222951026332145716797433082151163626379719074269808301357551643964381721429394615725583038917079354202452833936962311722538261375593904161154702777543319610501452254677073138154196169391146511502396429886425277175367653547931495867670181639771001811271632224260735059172795746370226363482024450196233437101286059954727387519288688575508764911493448043643733378605702228101394495327487075963704615789756460221143629789212202634404404367220044747242904967715518043246369613007247628976971706890204355011500767010689356007160808887631958023127007854407215747820886250960573005332960414391810719076996022601814095651116006181606651489518141724935172281004761505260119779826122344094420220007783464918048496930242714706619091967616843190640081534439180524825865443077571052521230854388953239965608875565429682479339497560406781540975847015463049573703720334834658259928673990395099105767412210147998216303357972751769373336547445708253310139001187436088722186991598243494567306367648382486855063748013960964626667780841197577618371786490752565491430822568488124338563872737666083450915014811663825516361184121430766005347649577844529887353881183782587406594238248616285095277390506902988133084027585912457046603109973120542199481014007972254449153929099703073713046098022925864699124573403387747379224202833821170589909868235490071757106273491083095753232260165169084981204393270129236505520778818658036538039841493852657114172369175354988613741322697240238503540505020159790061157491981503017401718114115909159241531923177034897076329410634620170419215462757497847094901014209283453805578181068308568607960188489233949898559989997540334362516892064366397163456331626459774871413389119784769817890174532740440420291706497960162577378968826374129529699866102244681074927821983174911977623613045997820131795208301560097231699530850410422682866211660062087873561641600221381533258056114872079459891442270171835250847060382266812595603070503394643732796500481776460700400724622193038251527206598395524350609574774720961389213908474470737381928468978018719408864119802561900701121699532708703444465424277776209892102559188238287973027711839340404025582404693339581697740808798996672646629708185738292368372538136516531283101513716224320124768141741357005193576953047614590726028771345422742318534613025936582846770489596666141791332509565419445485507246433942103045510704910423641430952325714837888762378877753208740940789355686451586334807627924768930139876860226379653010930553335659935205925444673007400489117775625387068192957422541549510575782129332846152683202551020949467246386853061311610902747669698337130513974931209296795920433374088984816049352942372634296794698964602084147857643031729419919522571366634387774194203665702578452760720790714557219535056330252912055085523442836709021709886603148355116363727123377251220541333225408036208583622385610066512244110791426540438291052798228993578294740574131527216199700067018615988959783228027332345055803919084414626724164826648024841442068927615566532540343965849870279976424510470521163702483663119154322018053762084016611734707224828589274929361024230154141226278638570896861305455195218402399961683921984114406119041564943319670701870639857402259019253111218718566459423315054191666064024295645604285879958199787103160113949595904802613811928944420034476724540833494466990916211319787554125144933833319017579615169708717479951864553832098492102691174988697413779880399234460375495607723096518160507623591980691053853009591487040859450076487317937942315122778808336988633073721485013034618857740433029717780802737425693494347132418111106886790878882975879525744772879015325933061067600051280178781280224209670355113791620969143366679306968669406269948652395207058689964269348358835621574289618154969071975602508840356570872733874294332338340657083010154033213063460055469460982818390354848363242916171787593406108573335423242288037467452754108637319253602862243299274178170586391700041706212485023776635043391106945575747154387531100362850770700247000900953673166086301135892745996334174228847671508039126434949593952359635484806732948003419233711894117113148791740532161125202423677627510124278020633140560223549863881603800602147513820742537632233329374445939631419464960364954741162003406245156529000930577308167501457918099876907976146926220146559489536475598114900420786649571698269964637581969515322878923872469259996833564595175930629771046287026516994456760644790567810078987966218578620548720115113336845505876455667071991277484613162772601290858169405527954087851410706784349454382276297496713223578819590770673077248474690371975823035403946599652308720642862176020796166047124457396780978933001100743248706125512428258132835418553594130666457373439163769998810379644020943629283160092200573655274867130671912610724332149821743896540228836079729808965417718227280578098457144232363590540350413448305628969524725985838814973243085813747815837672757169158485991696431708525377911016034692054380843399352169756358741773777828337396855589635464781891967815695189630684346187503156150447631627751111141962963395456756680447278174990074094432426578361845615720152500320114617299712070379995201739977899295404116058715466616353642306619121776498223100400988296925950721192590969171978014260638235725863112609363648575604831540163694362228726793952395397844770636572576484056997463937475376891623803699709345518601347097859649934824118111848829736543594305867883514532642341555276298195392080124211005458805426691551810752288831263980000037754192789506826538170387751040001153837171433007609742226414199222691995419818886997513669568956045255672655315510003190055191259520662144887963264203404828695335224822795780650051356871760501172278211778262488050053339802349841859035961743052268477296186701600873397723780482411162471382531583721565783081293892953985942537318777848961972751428503488752616666897711279737651225569084267084579144113453059460491546042373338269432669030039066944440352931389230118499624755048793324030293180274564639472564926939796526209503516793412856783047601475545032993066161233678015994376822939745971982849575504576525965555432838095388870725664195823465510144538113500272883399054061325110566256557450282207676521685077402009919181767427151048163404465481055342885898891247905632381192468360740103960705324814540524913639806107358081440550112348559519866349506769177484091569573606145758796450565350945558380405896959135262162005673753423825663909644513384930975226230831199140800677898200793781560414385298045231517819104369283631359833054228394123134515162506709846803789258201989489160605164574874158916261358723505021401252443246700521513192825502091499088364550959917381534336766628303004404414322224363280052961489497079579011868834611291309188510186431020695474070368985621292416331977279562217531685254783692440788816226319539156677506808324073590351795275755285260642154549323386057586526523318058833301564567033321667887320914088791857534887754780670788165676736443295297723982587021267365539289893456870312347819266170959981229316238093029417625362858124940892048482351911702705919824888194792312588409760240410608292409545441345881289765816429993569982222051532408597475912401827174563741964143823418870410753906227954477632327119356302261790352492817546608820157395882407322393050687408052934803730869817844684494275664992564001924659725882008210887771174030975199145964066973666282751837003524032446746494115103516096215626433482586332618941920322149059083360384487679673287778879306575186290572171216403454301719116983050570545303317143144482591955660836663114100856225888752477196407510674904500581438116827544490929296825655226989006452805674337414135549206809931446760756331552313079986407086081609700112389641448192342532116460964819855624768637176252046148249353788887516494866728160748593759417984601189781073971920265836265984657530447328344273495471262913872852021341764192762071794701578262619162039254760180106129964149403409237280566859551323976298220985038722460911949668434026225050974855546346455696422216789652598295254608723590092383409936369604574735787576430775899762347634710607381293534146213886068569557717741111376779201434721860414011317070361596481654346265750484918615869967098297687394910353397085188459897363661575475633321859449136009547655162198133091147158343102973095922212449290527644491461616971429068744871993252879298354709548830339142837010956284526016106893447725722876236275348686520867578398446449741334452391809882521029715257163777550669682005079132981368093976255941234222424302580302653955029649462257495014413398635557019514216294194962449268448485958278094502674899219932220272089732038287375795831538729333318190953536231705066429047867885528537487363404335930292523773596872529019788488446130956226596961199078957255873963440370074116307073586524534249231400073000942377866123892727897606810459514751825977283170899968296472860171092078639032552252102347857884148187794034590913506417693995575201060377677028167848903756103824861652188213689899519512125235592509152515983858160464423523059194835753779437117940842763133015121112754163315957520617810726685696027781593074100063677486182833198260830426160044078265815271824757623062925916163500834036731883889144790698847334715926601096113441277735535759770503995934417211738501894218090994979625285219492130600937390609038139788807622651182297732428322514184128352725663565205708007832832850183503078338686047950527672459678942161793968182657516510434248621024139406376796860029438873972030462459505080070228365101367422898499094863890516983903032513398741215449579061424169767595884276878315680220494810620799991512726500792016872984298716017201508758519390070812350458321591520708237143550053329573063905934266320469468281589480945568348573285998177390481632674978079884918687432319422117017174206462400898959510570920958760041676260869382459281522787230251258342251231280974639257032203039756856522418986577239216338765763692565412216835253718144418331304738123617244149186783807139436879104859834984641350751857283364597673567743045616952727352074717911578235754985085991048250836010266240946947794632601469872080963387674608348003874556318323312601367935921059284076509358420514624782743214961799976320292121680656003214270791137237943537170251589951890670211278215129987034280389608983435397818174837323887335633694130218683264946773076249063153044371097574775940849875889751344356796164919165921707220244596615241179557274547899396545061601268088743699609903368715196138808207794220966054877612259867259035588311864467618812721706416005677566710959882886884412237509418700435264025742273244809940182616426835266813707271673654398893350438520553552677927330917684785974815526275064290412623773136614880349374649348190407292503223798898177577510530184160465000011933353624891045320668021449825779307868437294195360347315903791661155727044560649993666434015747893945711042491334765433948285231414714025069223741270715454366759225503349434695802477133000709670627548226553550749858859558898576074433143587947221622611359316156942313270954725001562195644267356590770098673745041582180609509607299063869018016835603257824864177487122282282680194405366678321872562005164990214396012898025536850541306263261333199468066893179590219614570748458441262090188106948823677898651802368053152874579861221102018815129831687065840773654842026694526801285345668626261681483120411062219085574626743822738350874923084168069703642688709593988746996539636787230043476658966217519328450125748731266093868819665620612290110114386889269768566994590937095827218305194843047859118947674442162224187588971457389939087194000340944736081271027465531098018207330272362189975214995421191061878028126880770311863503550442319178254395855598479167139788079437591600635971342051820338674084319960700097847967684622927590709604918804894475160566459410719933384347528408048794827107333352093878236125580495790712365857297724222173618675321861016245304266507087261718397040261714619091999283025753021484195945520203996742053518124904542782891530968259791169008191627944686110186823813460437338109815747443603698120070910561839083582081492809200907252758452874408387838002181787860014032056266528311254852244615799539368732594318082149500373043073275704500642455083212069138043297105391440825137857704351545536513662281861827067556665240412814669420980907509725181062265765596544223561768965754093934640884952152170411915421450663737208391148457045875522242908088945811874940013926099617767170011450524074581200611282507048980170300339077012809854401230593767047570417747356129693808916762735017125911726624685126009136992463264306139681916536947586549661582610646407763100200556782932375698294942500083659156011717068575015034449603620357353769199034780711511530144640184906716897825622815089981313214313566530791270314907783551236524275831943841219420279100511364187857437057184647870847072581910134042245661711825317631933909586555670598487755925867589257406446411722109774974840494103937985693776963972823028808463274510352184096378012377308198232603683180665089903181829697795178363182253244806210724847040124028496171263838579667872847133241237976538430113392363106478483861194001671642477745733351157650104616129155900764681930825452392462694171896511606337464634072567959664260457070062069822181108066470147418573621324369210386361394532324633087864321560350694399761164673506829520564728281736968087777785775628747116253590212665293617477347620734249153789991668718120720117248387978279956999500925754755128492338065957724867993041527089172764870171838463381170704348955480916831756097001520405782849442255803034368944608816044906873148360899935232909431469894718226053843334235414343125576947774243781306241567682753990722711800225620751569873483213922939952375126776723816688826729942436336161274739812632969959594472556297788189513562167242903372340744111479714606388177498176297788927848199666462770954896992942709279111451720464785118685105829816185320570339218666684869108084134383458789255083111157738549382002386104624455457580939478732234496804626429931644037572315824906168367274955487022935019801405733162310038880774854163330471931040481552206056179861555011884005263561560134440374577618933041231713598873777105326852307713387353006111184483221478372308845936904964832839766392993674847579269272179809907490377075476777618988300178838246726462037420068077377672490898604670934186474076874646851759750576577472245341344323772857489987967229973942062046188822748241195875059949165775217196147499123917470337278259397353401685718748084156295029436478228983576053600788470182325407737781967090443447678826252752290508075430931473521116016289827636792325674257408414166524294776110824902570491089446217007674965216444278963204819042368070655897802470258624218605621685877626887160164082051866413635392465719636630175269167574727209129893130814634591259848163505708665639302547578938797473705930973980663677092605743108839521801449451956929946712310846662226991964607135433250839110432985848254494690947146344896099131872425806310451411520137662327913601055164057480321423676738636686207008682511150196737789530078622068573092442296266600134060491513818803864544426966115512838313169016196456620399780553163293538009394700684938380320490366694320358413615774455623129391501589970504094011973168515325178252684196943159748004577334062660989035288567640648675223612257591039442584789245203869414091486364147603415177220175209681895268554054077157116912689726290000818095040773675020988631613689186740111916660342620574594547668461599206791920565512092039071363963131197984370396202348881006591089305980311219953906519194805608942110942430460285716824015162795673011302373576353857766120714616565748855117520012546685961787585410742500504519712661284613233565177162087034816119183736999327078188643531057864351532862193013390250346158777540666239135254890695339168616630902614995091302365025768090349455290797589343351973216127647818737591760318292017510024019598367959013584517890934106487119373080795865525326706500938112574763092613507499438032375586432632570075344201194772531438236989027718333151088234430318040625516571382801186298774183317942130802905226104971280543067864607739405282906636598701809848552197919137534583631249108341825011950448761273973656023919031837987764657098093432900693767002657288876101201824088534129422352426090671589490369514239068448390572319969420484106925889018078961307064700310716838529260835894882973187314345470625104153564477500214489500849065957175391934100695393534312772407020570818128220991363042091213532182337657788557389015564740836139441598320099024076462763851947862518043698322577786065283164890736121531239901418954453974392815593540340623921638747333846306362152351263794762215115020004498863041036244325379081508928605772956117339872043460845992741290519791019296000099726040444244211077867412506456033778112586311146204879595310500547523358973647543060079582593717215033171236588071796972122460378157565278599674428595491332232664087504146389731401490565980663235700356855388406500341120009968878219339813262943827818623608446797996411094206018948142882273481667044407556244343624553959673803209048844865050071202641339870900480777104043067707300861647094276073956000927537301097143504448556661814670149971291505763289814726102528656615548903011401419971221658710723080757604401955004782228457659832785753617554366705602060414991777816401513504489141850606227623816556627388531124053434373797106543265891681101389044039595526431065919612986318119534508971924655360513310497430060275436201494874736897149416526855885104759071207142772968310664560441533372370741159271043407601097258967733050226026363221475423608688950321908507172436859866820813620493967997186715754101490502273229490496052156482071501619890561297023090304089171281075579687606828545246606416541199286032536786697543620985905022890564922779305633197842259938609993898974915937628163819255691783607050071726508607280787764087122920390117767546855999906987069355340191297042489163559840288404825145133595234755332801516294040978856563714598075185127859702814876379429637245430287593661867853198554919801413137572545187844660492731918873172928431812986664805826450216775284948105009098920285823789435170211976046063336721353569061137237227680876697540108828991928921886327947499255447820035956958994708632353464633246173631203684582183119042403868043145620214190978660966307230021716144771826466461156113590398704222151033072550384389548271065318233309236209581739314923833247563175177233521054709457240158584548982997004701130771846646651088873387921615485543817456465674898735517180477639192337334983347129353907335875342323594009029223007672884461140145305159489084207313867297631312758588057295884703615677164051817255037021540940274254323522695340977730555450001076145514302522959535301467359390887589079291272623160984838653207111168385039339576722324807865921692641808915750140094869173707464032509819969140233542921343438061690180916483001514428064820091271008386568294520832588431498141604219264099387432776501438095986542556548399099560556283605359292255916462415921404882096663298751905713167255798038330387077150886526901673611027513161406188918436511117787808074251990151979284476405480819442073305925890380159375884458026098763150316324119760654721933996684309555175652251723360131281372235179892675414504022798531110975103349561004302229257933648805571325870270617204123133834207386396497710367453246057436806937272605768025806056559295721195799834181843448753372059681943519113571973828823417077752992239815920218206626202421297875324986350757498621359334761661113416044873547005071400909544484557797414844443246157329916509943047355116777635287061511338442568945961118038655681536397041512482971534339719379285955583340222468119626485900457890644831504636487357365931002666910693611375811237082893158541134704725738189851454559339440981672050983306100629716318707962845892425999620667151867899709059104410786032355433781814527426603770793625515704866718673866058846640379783780812063908697868319362498351370090709216808088007121168756361235996230963722974854193798533087083466849142128062611062615919762965372467035812806448642102121813478021995203041852254129935415291232240325248870091055396850165974916054598889411132409645478342509765264840455519698464788668027865680048942423807645794073986135690117128167184518310157159227298080541166858594271777252466187495787693251792910164711705186380620952103250229338645879121964095149287440623938617861721231269128134329905536026094287910070363999606281949105009834274226648055476628097565450396521773705839030752423482160426823735022868322630511128985681289542408751700383702726139364132155651925831555876796784917046895282836388487224828037286923787765430587191572472744935466226745869439221183927946456383608413601509855424968827105556094449301177398945525781759610938875742124297516914863066411358791010142434707977981660228817401937681445102883657806637711939765997703575846483117982578699279656393246703553733409673908626304409586482708326511700870821534795655017057652106213838079394322869856413497921286867863407977306019854588507011932169926905965740270493449286778015046965913491175871003054560118035034151010258137446971807861545940220058326100423527421503534800918916619736031252158573181673466166157704337469424900346685027354272896118251789936018393348362349152572879352936278077176872132292566331917378046141069747021701010716625619702967067594665015387985647488286726830231952768188872593417550412600754067083488581650017391852123727403144298203662674058339300350639524041386259671645380627349699962983791215885810943062365367358791458581896992971475605651375561397358167741902914371165140431653726334676685943107621771603769094620188104789129536292715150285900450002813755896916214930285490846415478746652807681747459704021419927866997519207563928591412900000800688065253902536293166230042253856064112162884607699702021861616078424868309847644564867408502029641399933714682507309653072970392830319273470459793588417306523906034632117918815559368994427608923086638766744844489052624086416588480325129687897979606657953890388208494284669118686520260648883796917535273009003694597790041007425914049193828823124396794975916893683242831342427779981414353543970354321325747251020804254003779339271326313985890174601469653287851107401728878385980007262243976268721980595257689617840112035430686653184080196324519309183395168521558771251845913711679146857870329608208405571559694517994305464496740122044526378637070571121872322201372681320166403203788300146110667824706952386382727511476262074353264866749819315114446610334614788170583032606124791664388197299721963305721159446371245436116227405912296211886229521397409689404491924194670867921123303846242028498531732270221785698139865595097020741013147723137817286035371819624675365738857847827563426212312290540419187367614100096282302095795251997187555872278788819841502482537956071363599272304143255261764457608139565859015928288248548459986889786967541594988526581413711998087523810803110475472154058215782648375564978500881803932147168846871331039792503492879594398150241472857520463711880576206590686033145528163066432916296498336294341042415502025288685217978490624733974535866085942878551254371183004507967651719225957961798365117298878600400010149688582511486154197796080004429310754157229214405236262054256954442431075733369268526164457118650664820563567596778296259135195793455359892378223896471827850769944594750853199357524401962466319104372146306609179415283891198963581068396033052375963917899600079034336185577081740604507754937300205650609648247742567700395127470234861465927716930980775912150693911304893293386271675524798667191631634873405148885292147219156857680863525101928810905271308359763972254904857250583329587591728517188510903718569565925860558931034762611775053748769489339609112691442819581858469306557053946147314940374091825515441322545341794785458648964850411757392133544551004007713997150616704749485036626372402022061697369683504910488160372204515869261826188058987290730220783892266157290115173770462900348306298195026670550746318591510794655544915428684965185421378245074609850398435796199927346582839540183721089364565122404879941175665967560367459871783600167278167186560027352079114322194486876633933792414476655558166408278078756088666334210408240950516849082794109919850085606808433376646338647321483725078292318164407081438011000170395336215644116038733802217327548348707444757897168925061627594781919452261912062213321540786082066449064291373328182432645576077489972787563532417245312531635747450841459729550324096324512131567057122093681633146469965653408209300643942979575071133523993192413870410509056174398238043284413414451880824708402583040771879279894837839094019070693546406564270061448092228575461618509272883945229909311092433418550509346036818927057188460951855994645053845093635879239768956979884670193069581611781219717611034885555144047994650742576005574369909304031125596549709136852475843664424510735977465438370680005639081810327317652227597978347182347791155298234996116049468812849349617277572375257779122005596614466402825268693888192390447943522035700473272041907869883072680230019343941312220426560046394693338947738522073403938104927931444074421537375280564378881972748155787876985715997241115933157209746858311876849910349573054678679817638769535106488175656154659562406801598280198011224169433635982980429363602244811857445117572192746442977114335415144259439616878981432515326110166969420603041158102637577962741079747940396309755669197197887808672965687733530498184561582215905838969888379539260881363510991378500709300935285721516200257050982355481934404011312365094811291844792804538860486184954787843744176208975220124724461954646824053828181953237073591956434303522845652550135587185004953336394421072083907397826639081801218912156416621923386154243352370973585073124880322372621512936403261555535759269316915424788682676057931271530996899782359702247272791992659935981777961980825146232077038659545591115822019206485972382619519350248438574860703702715223007957468914971153907086556812906468127022126289850351784806281177500792470432516241873807100646629151743137425990795795093137310700618341982021034151892733314200114058645725808025035513697293920840563055472023213967203742912355407055191927719642180586007851135985567495413996244114950560190667378572590029283176911351836056879217085231561079033523761898594541171448239987846274939705810540727871292914616247650884145757160584452857832868587330272751856244991963903613833948412045284393725030300330607252375293105772270653200580269787715016692816644276723128190951067619289504238879205690195352880123230605765574464674037393281826982582442429066037600518830558771550077835395926041020532128339414871403458379607631137179135666473648733323080356285021252032524250770503019245100981970890667122927283140155893114674853459920250624791291995347554442743550038775824413470633918512476309784675226720425888998285405307722238266300901541136077915645688374388809220277426364743975107867794756011733304290751555290897287803360912927237723875197047903893802886680152848637066562763459469558813906697159612515530883419224993843373992868824263007153732125389012103259860475937047114472266134446200904882520765485246905342387831764045255209335386237975768044775568988768299895756248971435810400065284615977003413706308255654483914102164718231257733105915635566249283289121361631080359496141979333732178477641354398545267828373575437155565213173925474912845920567621951135082515025058551748591536028546102628488807756243473683027805238061001092563500221575815797378642608269976974560364160901336599185805691622617405003068648462110631558042913475574152367115427099788406575922490349479457556499404175205838647892717725373484282587820953702020504922277246793913831543240106491210368922125381604161563033981085230022623720398062187490505529994251963276149642183367661635826094789279680740380807554677684048646961102177484565907282506417756976741200866514375037942750325672612894462572275882744595999302058264786587701541163173757795019277722603278714439054736941307180835919004811760991012589851616863010837275057269488870105832624029539209313930607825688047874352838961345117272391016744159074388690423736838552935756421876346745500306820849924192471123313536734919526070375677922185237319513875790975023256782586448646498234042010017240186768655070977066323836082575123978342939487761217884104041003606915423450137379515729109295051346438549980216813813327712522666129342709823102398070618530395900669968515147625609783757801159074867460399240839882180291010693193414095510426295088970519742942240628739722572939079792275260231892355919067110104848122370386892601926500254494997651352384947463081970434800246394629383713516155484169301338374035585263998659760316520976053965997201895259955484502855002414005748016220016435503946669078302945921270087764738197390556863160660738940225064597843765297156054499392170019095491419470194623465440395342289458442023855590104914106310328472320251648340104309930180160948060404713180091138251006155093907710385436504921434324691305532633545724486707630309760692034230617408874638246396198887918326778634050210870085429340944535500123676900612350113511748449888464564105376926245855555285252429810477626916507953748250746075271815816628777587265676993750926092767196948284951075964706582011601495116870409885646545723388163363694999944870301201692225774878995451280865010069490055769777082533710188536753464601736579369989518197782803443367164146515284022259504305393095719785652732753408815754260904505042227477293806585321267672598419623296221466031821267881273191459563514644343802982962035763501712838523318271022502159704910176196019941316421706496655196946803408166370997316258308021540212169512318302902355218169170190000330185821950009065296050225919049440432804625246231986039474759119290490426704881679043932155653575944526697627114631618654062945356987323246641013442960809549282006231044320038802020467085124580984259123371083598999516917253454920667862621101309374611728191750130312069579742963167897992662180988717481288396715962782699479425016205913607229321645380709489603275727801002175725756055771366527895226818934196671051951029930110184208907847866175575422277191511578251941156894729285753231129765383552370982974349154333391394936953165085086671326140411421060689765372787858107785716338594365290705116207259535055634833813832718768416024793007303120966717072232210027855075814179259601582863967981150859742903059656831825818426164013075870359992027149695551092694950078078008952455658415958533517087946470469020865860500526666329834493513288280490460898558243686375156712282263349958002906594983400293190395243202870602096363234035533992337828312697439046577660892266964313205411865716629236111773468885447979885641584356670832294075579799492805823156264574432284132481929857393646105892117136046612020669726096965218927024794618014917662903780727078821786164509082924026290698407729196122032165041887278910459603068618805089623657418699529114894595358669252835483527519697164105387702826995739988769727956576610747194758736919723811636451126745993157480616862136577076065265992706403187965249819428991691038242841964219969649768354993710747304833046862952540800723241203953893946351374820664297976398131623601930387155344509744161198479549341744665189558115278051829112159137876912674454628315837822895834598137853293310602059687581408847965185646442144891860933437991309431086523387193934184945650491527089499417000618509574448791862418815490504154915397883134875970842797679206665790556133707356166197632118424658120143154310627335643681654239962374821021629945452212678933468593388098331950522091027816085375579643094008746071709825470847237811981315576080873372907777876516925258859013070250859496081000251363966284903057478647464255511588096555362633489705724269555226840480714498631694516949582289335326788645547163378629592120959468027486961522100966442307362832115130234197335649752648351218370802060994030054437801674126700436708211367059955413420375231319586075362624991961109745915313089287583280824854045676295669526971163948157573553188281820096557885574842966622338496001258417768474625972361607638808083131734609148716685858733271277233268842539773525113479226679081495027706397748144479152772095803982322412173074176973273524196395748196685078942016692930332871028705898191396111849479682010480864692211756574963696578717106141635354418644412222094714053645643994613709990676239050804854903254500653827638192425730798036039776931534365354581763678409244336640788150042093940656